fix directory creation mechanism; the optimized version would not work :-(
[samba.git] / source3 / Makefile.in
index 53a79d332f5e38f2804b3de4eff0749bf52e88b2..ff69a5e641a83dbecbebf3c9a99dece6e88aaa68 100644 (file)
@@ -222,80 +222,110 @@ all : CHECK $(SPROGS) $(PROGS)
 CHECK:
        @echo "Using FLAGS = $(FLAGS)"
        @echo "Using LIBS = $(LIBS)"
-
-.c.o: @MAINT@ .deps/.dummy
+       @(cd $(srcdir) && ls -1d */*.c && echo bin/.) | \
+        sed 's,/[^/]*$$,,;s,^$$,.,' | \
+        while read dir; do \
+          if test ! -d "$$dir"; then \
+            echo mkdir "$$dir" && mkdir "$$dir" || true; \
+          else true; fi; \
+        done
+
+.c.o: @MAINT@ .deps/.dummy obj-dirs
        @echo Compiling $*.c
+       @dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` && \
+          if test ! -d "$$dir"; then \
+            echo mkdir "$$dir" && mkdir "$$dir" || true; \
+          else true; fi
        @$(CC) -I. -I$(srcdir) $(FLAGS) -c $< -o $@ \
        @MAINT@ -Wp,-MD,.deps/`echo $* | sed s,/,_,g`.P && : >.deps/.stamp
 # the line above is for atomatic dependency tracking
 # it will only work with GNU make, gcc and --enable-maintainer-mode
 
-bin/smbd: $(SMBD_OBJ) 
+MKDIR_BIN = if test ! -d bin; then echo mkdir bin && mkdir bin || true; else true; fi
+
+bin/smbd: $(SMBD_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LIBS) 
 
 bin/nmbd: $(NMBD_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(LIBS)
 
 bin/swat: $(SWAT_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(LIBS) 
 
 bin/smbrun: $(SMBRUN_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(SMBRUN_OBJ) $(LDFLAGS) $(LIBS)
 
-bin/rpcclient: $(RPCCLIENT_OBJ) 
+bin/rpcclient: $(RPCCLIENT_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(RPCCLIENT_OBJ) $(LDFLAGS) $(LIBS)
 
-bin/smbclient: $(CLIENT_OBJ) 
+bin/smbclient: $(CLIENT_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(LIBS)
 
-bin/smbmount: $(MOUNT_OBJ) 
+bin/smbmount: $(MOUNT_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(MOUNT_OBJ) $(LIBS)
 
-bin/smbmnt: $(MNT_OBJ) 
+bin/smbmnt: $(MNT_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(LIBS)
 
-bin/smbumount: $(UMOUNT_OBJ) 
+bin/smbumount: $(UMOUNT_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(LIBS)
 
 bin/testparm: $(TESTPARM_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(LIBS)
 
 bin/testprns: $(TESTPRNS_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(LIBS)
 
 bin/smbstatus: $(STATUS_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(LIBS)
 
 bin/smbpasswd: $(SMBPASSWD_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(LIBS)
 
-bin/make_smbcodepage: $(MAKE_SMBCODEPAGE_OBJ) 
+bin/make_smbcodepage: $(MAKE_SMBCODEPAGE_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(MAKE_SMBCODEPAGE_OBJ) $(LDFLAGS) $(LIBS)
 
 bin/nmblookup: $(NMBLOOKUP_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(LIBS)
 
-bin/make_printerdef: $(MAKE_PRINTERDEF_OBJ) 
+bin/make_printerdef: $(MAKE_PRINTERDEF_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(MAKE_PRINTERDEF_OBJ) $(LDFLAGS) $(LIBS)
 
-bin/smbtorture: $(SMBTORTURE_OBJ) 
+bin/smbtorture: $(SMBTORTURE_OBJ)
        @echo Linking $@
+       @$(MKDIR_BIN)
        @$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(LIBS)
 
 
@@ -358,7 +388,7 @@ realclean: clean
        -rm -f config.log $(PROGS) $(SPROGS)
 
 distclean: realclean
-       -rm -f include/config.h include/stamp-h Makefile */.dummy
+       -rm -f include/config.h include/stamp-h Makefile
        -rm -f config.status config.cache
        -rm -rf .deps
 
@@ -381,7 +411,8 @@ $(srcdir)/configure: @MAINT@ $(srcdir)/configure.in $(srcdir)/aclocal.m4
 config.status: $(srcdir)/configure
        $(SHELL) ./config.status --recheck
 
-Makefile: $(srcdir)/Makefile.in config.status
+Makefile: $(srcdir)/Makefile.in config.status \
+         include/stamp-h # just to ensure that config.h is up-to-date
        CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
 # note that nothing depends on config.h, so will probably be rebuilt
@@ -398,14 +429,7 @@ $(srcdir)/include/config.h.in: $(srcdir)/include/stamp-h.in
 
 $(srcdir)/include/stamp-h.in: @MAINT@ $(srcdir)/acconfig.h $(srcdir)/configure.in
        cd $(srcdir) && $(AUTOHEADER)
-       @cd $(srcdir) && echo > include/stamp-h.in
-
-DUMMY_FILES = @DUMMY_FILES@
-DUMMY_BASE = @DUMMY_BASE@
-
-Makefile: $(DUMMY_FILES)
-$(DUMMY_FILES):
-       CONFIG_FILES=$@$(DUMMY_BASE) CONFIG_HEADERS= $(SHELL) ./config.status
+       @date -u > $@
 
 # automatic dependency tracking rules
 .deps/.dummy: