]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
MinGW makefile tweaks for running from sh.
authorGuenter Knauf <lists@gknw.net>
Tue, 3 Jul 2012 10:56:41 +0000 (12:56 +0200)
committerGuenter Knauf <lists@gknw.net>
Tue, 3 Jul 2012 10:56:41 +0000 (12:56 +0200)
Added function macros to make path converting easier.
Added CROSSPREFIX to all compile tools.

docs/examples/Makefile.m32
lib/Makefile.m32
src/Makefile.m32

index 3387c928312ee42a85598890ff279c96ea12817f..c1db6207aafb5f671c01bdd431b2ffadb5ff04a8 100644 (file)
@@ -75,19 +75,44 @@ ifndef ARCH
 ARCH = w32
 endif
 
-CC gcc
-CFLAGS = -g -O2 -Wall
-CFLAGS += -fno-strict-aliasing
+CC     = $(CROSSPREFIX)gcc
+CFLAGS = -g -O2 -Wall
+CFLAGS += -fno-strict-aliasing
 ifeq ($(ARCH),w64)
-CFLAGS += -D_AMD64_
+CFLAGS += -D_AMD64_
 endif
 # comment LDFLAGS below to keep debug info
-LDFLAGS = -s
-RC windres
-RCFLAGS = --include-dir=$(PROOT)/include -O COFF -i
+LDFLAGS        = -s
+RC     = $(CROSSPREFIX)windres
+RCFLAGS        = --include-dir=$(PROOT)/include -O COFF -i
 
-RM = del /q /f 2>NUL
-CP = copy
+# Platform-dependent helper tool macros
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DEL    = rm -f $1
+RMDIR  = rm -fr $1
+MKDIR  = mkdir -p $1
+COPY   = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR  = -rsync -aC $1/* $2
+TOUCH  = touch $1
+CAT    = cat
+ECHONL = echo ""
+DL     = '
+else
+ifeq "$(OS)" "Windows_NT"
+DEL    = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR  = -rd 2>NUL /q /s $(subst /,\,$1)
+else
+DEL    = -del 2>NUL $(subst /,\,$1)
+RMDIR  = -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR  = -md 2>NUL $(subst /,\,$1)
+COPY   = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR  = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH  = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT    = type
+ECHONL = $(ComSpec) /c echo.
+endif
 
 ########################################################
 ## Nothing more to do below this line!
@@ -132,6 +157,13 @@ endif
 ifeq ($(findstring -ipv6,$(CFG)),-ipv6)
 IPV6 = 1
 endif
+ifeq ($(findstring -metalink,$(CFG)),-metalink)
+METALINK = 1
+endif
+ifeq ($(findstring -winssl,$(CFG)),-winssl)
+SCHANNEL = 1
+SSPI = 1
+endif
 
 INCLUDES = -I. -I$(PROOT) -I$(PROOT)/include -I$(PROOT)/lib
 
@@ -194,6 +226,9 @@ endif
 endif
 ifdef SSPI
   CFLAGS += -DUSE_WINDOWS_SSPI
+  ifdef SCHANNEL
+    CFLAGS += -DUSE_SCHANNEL
+  endif
 endif
 ifdef SPNEGO
   CFLAGS += -DHAVE_SPNEGO
@@ -225,6 +260,8 @@ include Makefile.inc
 check_PROGRAMS := $(patsubst %,%.exe,$(strip $(check_PROGRAMS)))
 check_PROGRAMS += ftpuploadresume.exe synctime.exe
 
+.PRECIOUS: %.o
+
 
 all: $(check_PROGRAMS)
 
@@ -238,8 +275,8 @@ all: $(check_PROGRAMS)
        $(RC) $(RCFLAGS) $< -o $@
 
 clean:
-       -$(RM) $(check_PROGRAMS:.exe=.o)
+       @$(call DEL, $(check_PROGRAMS:.exe=.o))
 
 distclean vclean: clean
-       -$(RM) $(check_PROGRAMS)
+       @$(call DEL, $(check_PROGRAMS))
 
index 809612b82df8bec9deddb8a61bc30b234c22bdd4..050c004b52bbedd4579a7a0452458f5dc58f5a2b 100644 (file)
@@ -55,22 +55,47 @@ ifndef ARCH
 ARCH = w32
 endif
 
-CC gcc
-CFLAGS = -g -O2 -Wall
-CFLAGS += -fno-strict-aliasing
+CC     = $(CROSSPREFIX)gcc
+CFLAGS = -g -O2 -Wall
+CFLAGS += -fno-strict-aliasing
 ifeq ($(ARCH),w64)
-CFLAGS += -D_AMD64_
+CFLAGS += -D_AMD64_
 endif
 # comment LDFLAGS below to keep debug info
-LDFLAGS = -s
-AR ar
-RANLIB = ranlib
-RC windres
-RCFLAGS = --include-dir=$(PROOT)/include -DDEBUGBUILD=0 -O COFF -i
-STRIP = strip -g
+LDFLAGS        = -s
+AR     = $(CROSSPREFIX)ar
+RANLIB = $(CROSSPREFIX)ranlib
+RC     = $(CROSSPREFIX)windres
+RCFLAGS        = --include-dir=$(PROOT)/include -DDEBUGBUILD=0 -O COFF -i
+STRIP  = strip -g
 
-RM = del /q /f 2>NUL
-CP = copy
+# Platform-dependent helper tool macros
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DEL    = rm -f $1
+RMDIR  = rm -fr $1
+MKDIR  = mkdir -p $1
+COPY   = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR  = -rsync -aC $1/* $2
+TOUCH  = touch $1
+CAT    = cat
+ECHONL = echo ""
+DL     = '
+else
+ifeq "$(OS)" "Windows_NT"
+DEL    = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR  = -rd 2>NUL /q /s $(subst /,\,$1)
+else
+DEL    = -del 2>NUL $(subst /,\,$1)
+RMDIR  = -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR  = -md 2>NUL $(subst /,\,$1)
+COPY   = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR  = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH  = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT    = type
+ECHONL = $(ComSpec) /c echo.
+endif
 
 ########################################################
 ## Nothing more to do below this line!
@@ -115,7 +140,7 @@ endif
 ifeq ($(findstring -ipv6,$(CFG)),-ipv6)
 IPV6 = 1
 endif
-ifeq ($(findstring -schannel,$(CFG)),-schannel)
+ifeq ($(findstring -winssl,$(CFG)),-winssl)
 SCHANNEL = 1
 SSPI = 1
 endif
@@ -185,9 +210,9 @@ endif
 endif
 ifdef SSPI
   CFLAGS += -DUSE_WINDOWS_SSPI
-ifdef SCHANNEL
-  CFLAGS += -DUSE_SCHANNEL
-endif
+  ifdef SCHANNEL
+    CFLAGS += -DUSE_SCHANNEL
+  endif
 endif
 ifdef SPNEGO
   CFLAGS += -DHAVE_SPNEGO
@@ -231,7 +256,7 @@ RESOURCE = libcurl.res
 all: $(libcurl_a_LIBRARY) $(libcurl_dll_LIBRARY)
 
 $(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
-       -$(RM) $@
+       @$(call DEL, $@)
        $(AR) cru $@ $(libcurl_a_OBJECTS)
        $(RANLIB) $@
        $(STRIP) $@
@@ -239,7 +264,7 @@ $(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
 # remove the last line above to keep debug info
 
 $(libcurl_dll_LIBRARY): $(libcurl_a_OBJECTS) $(RESOURCE) $(libcurl_dll_DEPENDENCIES)
-       -$(RM) $@
+       @$(call DEL, $@)
        $(CC) $(LDFLAGS) -shared -Wl,--out-implib,$(libcurl_dll_a_LIBRARY) \
          -o $@ $(libcurl_a_OBJECTS) $(RESOURCE) $(DLL_LIBS)
 
@@ -251,17 +276,18 @@ $(libcurl_dll_LIBRARY): $(libcurl_a_OBJECTS) $(RESOURCE) $(libcurl_dll_DEPENDENC
 
 clean:
 ifeq "$(wildcard $(PROOT)/include/curl/curlbuild.h.dist)" "$(PROOT)/include/curl/curlbuild.h.dist"
-       -$(RM) $(subst /,\,$(PROOT)/include/curl/curlbuild.h)
+       @$(call DEL, $(PROOT)/include/curl/curlbuild.h)
 endif
-       -$(RM) $(libcurl_a_OBJECTS) $(RESOURCE)
+       @$(call DEL, $(libcurl_a_OBJECTS) $(RESOURCE))
 
 distclean vclean: clean
-       -$(RM) $(libcurl_a_LIBRARY) $(libcurl_dll_LIBRARY) $(libcurl_dll_a_LIBRARY)
+       @$(call DEL, $(libcurl_a_LIBRARY) $(libcurl_dll_LIBRARY) $(libcurl_dll_a_LIBRARY))
+
+$(PROOT)/include/curl/curlbuild.h:
+       @echo Creating $@
+       @$(call COPY, $@.dist, $@)
 
 $(LIBCARES_PATH)/libcares.a:
        $(MAKE) -C $(LIBCARES_PATH) -f Makefile.m32
 
-$(PROOT)/include/curl/curlbuild.h:
-       @echo Creating $@
-       @$(CP) $(subst /,\,$@).dist $(subst /,\,$@)
 
index e74a4188d0294c185cb8bc3d73d0906e451fbe62..8cecfc31c1af8a11f4619c5fef6a05deae8d1926 100644 (file)
@@ -59,24 +59,49 @@ ifndef ARCH
 ARCH = w32
 endif
 
-CC gcc
-CFLAGS = -g -O2 -Wall
-CFLAGS += -fno-strict-aliasing
+CC     = $(CROSSPREFIX)gcc
+CFLAGS = -g -O2 -Wall
+CFLAGS += -fno-strict-aliasing
 ifeq ($(ARCH),w64)
-CFLAGS += -D_AMD64_
+CFLAGS += -D_AMD64_
 endif
 # comment LDFLAGS below to keep debug info
-LDFLAGS = -s
-RC = windres
-RCFLAGS = --include-dir=$(PROOT)/include -O COFF -i
-
-RM = del /q /f 2>NUL
-CP = copy
+LDFLAGS        = -s
+RC     = $(CROSSPREFIX)windres
+RCFLAGS        = --include-dir=$(PROOT)/include -O COFF -i
 
 # We may need these someday
 # PERL = perl
 # NROFF = nroff
 
+# Platform-dependent helper tool macros
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DEL    = rm -f $1
+RMDIR  = rm -fr $1
+MKDIR  = mkdir -p $1
+COPY   = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR  = -rsync -aC $1/* $2
+TOUCH  = touch $1
+CAT    = cat
+ECHONL = echo ""
+DL     = '
+else
+ifeq "$(OS)" "Windows_NT"
+DEL    = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR  = -rd 2>NUL /q /s $(subst /,\,$1)
+else
+DEL    = -del 2>NUL $(subst /,\,$1)
+RMDIR  = -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR  = -md 2>NUL $(subst /,\,$1)
+COPY   = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR  = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH  = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT    = type
+ECHONL = $(ComSpec) /c echo.
+endif
+
 ########################################################
 ## Nothing more to do below this line!
 
@@ -123,7 +148,7 @@ endif
 ifeq ($(findstring -metalink,$(CFG)),-metalink)
 METALINK = 1
 endif
-ifeq ($(findstring -schannel,$(CFG)),-schannel)
+ifeq ($(findstring -winssl,$(CFG)),-winssl)
 SCHANNEL = 1
 SSPI = 1
 endif
@@ -194,9 +219,9 @@ ifdef METALINK
 endif
 ifdef SSPI
   CFLAGS += -DUSE_WINDOWS_SSPI
-ifdef SCHANNEL
-  CFLAGS += -DUSE_SCHANNEL
-endif
+  ifdef SCHANNEL
+    CFLAGS += -DUSE_SCHANNEL
+  endif
 endif
 ifdef SPNEGO
   CFLAGS += -DHAVE_SPNEGO
@@ -239,7 +264,7 @@ RESOURCE = curl.res
 all: $(curl_PROGRAMS)
 
 curl.exe: $(RESOURCE) $(curl_OBJECTS) $(curl_DEPENDENCIES)
-       -$(RM) $@
+       $(call DEL, $@)
        $(CC) $(LDFLAGS) -o $@ $< $(curl_OBJECTS) $(curl_LDADD)
 
 # We don't have nroff normally under win32
@@ -249,7 +274,7 @@ curl.exe: $(RESOURCE) $(curl_OBJECTS) $(curl_DEPENDENCIES)
 
 hugehelp.c:
        @echo Creating $@
-       @$(CP) hugehelp.c.cvs $@
+       @$(call COPY, $@.cvs, $@)
 
 %.o: %.c
        $(CC) $(INCLUDES) $(CFLAGS) -c $<
@@ -259,10 +284,10 @@ hugehelp.c:
 
 clean:
 ifeq "$(wildcard hugehelp.c.cvs)" "hugehelp.c.cvs"
-       -$(RM) hugehelp.c
+       @$(call DEL, hugehelp.c)
 endif
-       -$(RM) $(curl_OBJECTS) $(curlx_OBJECTS) $(RESOURCE)
+       @$(call DEL, $(curl_OBJECTS) $(curlx_OBJECTS) $(RESOURCE))
 
 distclean vclean: clean
-       -$(RM) $(curl_PROGRAMS)
+       @$(call DEL, $(curl_PROGRAMS))