summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2009-06-13 18:11:17 +0000
committerYang Tse <yangsita@gmail.com>2009-06-13 18:11:17 +0000
commit169e94d68b82d7da6a4fc06c6ec2880e3e53196b (patch)
tree8ad33248bd8f7e5e4f5f8443562891b5fc047130
parent0cc81840571accc48781c47b2c84e32fc5445846 (diff)
downloadgnurl-169e94d68b82d7da6a4fc06c6ec2880e3e53196b.tar.gz
gnurl-169e94d68b82d7da6a4fc06c6ec2880e3e53196b.tar.bz2
gnurl-169e94d68b82d7da6a4fc06c6ec2880e3e53196b.zip
improve usability with UNIX-like shells or a DOS command interpreters
-rw-r--r--lib/makefile.dj29
-rw-r--r--packages/DOS/common.dj36
-rw-r--r--src/makefile.dj30
3 files changed, 74 insertions, 21 deletions
diff --git a/lib/makefile.dj b/lib/makefile.dj
index 93bb2a812..b8d324923 100644
--- a/lib/makefile.dj
+++ b/lib/makefile.dj
@@ -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
diff --git a/packages/DOS/common.dj b/packages/DOS/common.dj
index 8ca30daea..33b7e7a89 100644
--- a/packages/DOS/common.dj
+++ b/packages/DOS/common.dj
@@ -14,6 +14,34 @@ 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
# (reduces curl.exe with approx 700 kB)
@@ -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 $<
diff --git a/src/makefile.dj b/src/makefile.dj
index 60f13f24d..4a460bad9 100644
--- a/src/makefile.dj
+++ b/src/makefile.dj
@@ -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