]> granicus.if.org Git - curl/commitdiff
improve usability with UNIX-like shells or a DOS command interpreters
authorYang Tse <yangsita@gmail.com>
Sat, 13 Jun 2009 18:11:17 +0000 (18:11 +0000)
committerYang Tse <yangsita@gmail.com>
Sat, 13 Jun 2009 18:11:17 +0000 (18:11 +0000)
lib/makefile.dj
packages/DOS/common.dj
src/makefile.dj

index 93bb2a812129f1f9e3a044075277f1523b2dd28c..b8d324923b956f010f69303de50c7cbf4e7372b6 100644 (file)
@@ -8,16 +8,14 @@ DEPEND_PREREQ = config.h
 TOPDIR = ..
 
 include ../packages/DOS/common.dj
-
-# Makefile.inc provides the CSOURCES and HHEADERS defines
 include Makefile.inc
 
 OBJECTS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(strip $(CSOURCES)))
 
 CURL_LIB = libcurl.a
 
-# NOTE: if ../include/curl/curlbuild.h is missing, you're probably building this
-# from a CVS checkout and then you need to run buildconf.bat first!
+# NOTE: if ../include/curl/curlbuild.h is missing, you're probably building
+# this from a CVS checkout and then you need to run buildconf.bat first.
 
 all: $(OBJ_DIR) config.h $(CURL_LIB)
 
@@ -25,13 +23,28 @@ $(CURL_LIB): $(OBJECTS)
        ar rs $@ $?
 
 config.h: config.dos
-       cp $^ $@
+       $(COPY) $^ $@
+
+# clean generated files
+#
+genclean:
+       - $(DELETE) config.h
 
-clean:
-       - rm -f $(OBJECTS)
+# clean object files and subdir
+#
+objclean: genclean
+       - $(DELETE) $(OBJ_DIR)$(DS)*.o
+       - $(RMDIR) $(OBJ_DIR)
 
+# clean without removing built library
+#
+clean: objclean
+       - $(DELETE) depend.dj
+
+# clean everything
+#
 realclean vclean: clean
-       - rm -f config.h depend.dj $(CURL_LIB)
+       - $(DELETE) $(CURL_LIB)
 
 -include depend.dj
 
index 8ca30daea6aa42d90e1a3cbc74791a5bb6a4bb29..33b7e7a8985629db69198dd68fad12913bb1ace3 100644 (file)
 MAKEFILE = Makefile.dj
 OBJ_DIR = djgpp
 
+#
+# Find out if using a UNIX-like shell or a DOS command interpreter
+#
+ifneq ($(findstring COMMAND.COM,$(SHELL)),COMMAND.COM)
+  ifneq ($(findstring CMD.EXE,$(SHELL)),CMD.EXE)
+    ifneq ($(findstring 4DOS.COM,$(SHELL)),4DOS.COM)
+      IS_UNIX_SHELL = 1
+    endif
+  endif
+endif
+
+#
+# Define shell dependant commands and vars
+#
+ifeq ($(IS_UNIX_SHELL),1)
+  COPY   = cp -f
+  DELETE = rm -f
+  MKDIR  = mkdir
+  RMDIR  = rm -f -r
+  DS     = /
+else
+  COPY   = copy
+  DELETE = del
+  MKDIR  = mkdir
+  RMDIR  = rmdir
+  DS     = \$(NOTHING)
+endif
+
 #
 # OpenSSL is available from www.openssl.org and builds okay
 # with djgpp/Watt-32. Set to 0 if you don't need https URLs
@@ -85,11 +113,15 @@ ifeq ($(USE_IDNA),1)
 endif
 
 ifeq ($(USE_DEBUG),1)
-  CFLAGS += -DDEBUG=1 -DCURLDEBUG # -DDPRINTF_DEBUG2=1
+  CFLAGS += -DDEBUG=1 -DDEBUGBUILD
+endif
+
+ifeq ($(USE_CURLDEBUG),1)
+  CFLAGS += -DCURLDEBUG
 endif
 
 $(OBJ_DIR):
-       mkdir $(OBJ_DIR)
+       $(MKDIR) $(OBJ_DIR)
 
 $(OBJ_DIR)/%.o: %.c
        $(CC) $(CFLAGS) -o $@ -c $<
index 60f13f24d894bce234ec403edf88bc53a11c63f0..4a460bad97921d00e10d1c9a882c6cb237cac82f 100644 (file)
@@ -39,14 +39,6 @@ CFLAGS += -DUSE_ENVIRONMENT
 PROGRAM  = curl.exe
 OBJECTS += $(addprefix $(OBJ_DIR)/, $(CSOURCES:.c=.o))
 
-ifneq ($(findstring COMMAND.COM,$(SHELL)),COMMAND.COM)
-  ifneq ($(findstring CMD.EXE,$(SHELL)),CMD.EXE)
-    ifneq ($(findstring 4DOS.COM,$(SHELL)),4DOS.COM)
-      IS_UNIX_SHELL = 1
-    endif
-  endif
-endif
-
 all: $(OBJ_DIR) config.h $(PROGRAM)
        @echo Welcome to cURL
 
@@ -67,11 +59,27 @@ hugehelp.c: ../docs/MANUAL ../docs/curl.1 mkhelp.pl
        groff -Tascii -man ../docs/curl.1 | \
        perl -w mkhelp.pl ../docs/MANUAL > $@
 
-clean:
-       - rm -f $(OBJECTS) config.h
+# clean generated files
+#
+genclean:
+       - $(DELETE) config.h
+       - $(DELETE) hugehelp.c
+
+# clean object files and subdir
+#
+objclean: genclean
+       - $(DELETE) $(OBJ_DIR)$(DS)*.o
+       - $(RMDIR) $(OBJ_DIR)
+
+# clean without removing built program
+#
+clean: objclean
+       - $(DELETE) depend.dj
 
+# clean everything
+#
 realclean vclean: clean
-       - rm -f $(PROGRAM) hugehelp.c depend.dj
+       - $(DELETE) $(PROGRAM)
 
 -include depend.dj