summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2018-08-02 20:51:11 -0400
committerPaul Smith <psmith@gnu.org>2018-08-02 20:55:34 -0400
commit23554ee65897c968a2ab56c3a6f248e7037b1098 (patch)
tree72a0fb608e77a4ea82687f3fc1e25dcb93f1e859 /mk
parent0ce880e5ee7b4c5670aa676354ae10df448a616d (diff)
downloadmake-git-23554ee65897c968a2ab56c3a6f248e7037b1098.tar.gz
Enhance the Basic.mk environment to work with Gnulib
* maintMakefile: Omit generated headers from Basic.mk prerequisites. * Basic.mk.template: Rework commands to use with $(call ...) macros. * mk/Amiga.mk: Ditto. * mk/VMS.mk: Ditto. * mk/Windows32.mk: Ditto, plus P2W to convert POSIX to Windows paths. * mk/msdosdjgpp.mk: Ditto.
Diffstat (limited to 'mk')
-rw-r--r--mk/Amiga.mk9
-rw-r--r--mk/VMS.mk20
-rw-r--r--mk/Windows32.mk20
-rw-r--r--mk/msdosdjgpp.mk19
4 files changed, 32 insertions, 36 deletions
diff --git a/mk/Amiga.mk b/mk/Amiga.mk
index 79f9b6ae..fe41da8a 100644
--- a/mk/Amiga.mk
+++ b/mk/Amiga.mk
@@ -21,10 +21,9 @@
CC = sc
LD = $(CC) Link
-RM = delete
-MKDIR = makedir
-CP = copy
-CP.cmd = $(CP) $< To $@
+MKDIR.cmd = makedir $1
+RM.cmd = delete $1
+CP.cmd = copy $1 To $2
CPPFLAGS =
CFLAGS =
@@ -43,4 +42,4 @@ LDLIBS = Lib LIB:sc.lib LIB:amiga.lib
LINK_OUTPUT = To $@
$(OUTDIR)src/config.h: $(SRCDIR)/src/config.ami
- $(CP.cmd)
+ $(call CP.cmd,$<,$@)
diff --git a/mk/VMS.mk b/mk/VMS.mk
index 1fbc858b..2614e2f8 100644
--- a/mk/VMS.mk
+++ b/mk/VMS.mk
@@ -25,10 +25,6 @@ SRCDIR = []
OBJEXT = .obj
EXEEXT = .exe
-CP = copy
-MKDIR = create/dir
-RM = delete
-
e =
s = $e $e
c = ,
@@ -79,19 +75,23 @@ prog_SOURCES += $(ALLOCA) $(glob_SOURCES) $(vms_SOURCES)
BUILT_SOURCES += $(lib)fnmatch.h $(lib)glob.h
-COMPILE.cmd = $(CC) $(extra_CFLAGS)$(CFLAGS)/obj=$@ $(extra_CPPFLAGS)$(CPPFLAGS) $<
+COMPILE.cmd = $(CC) $(extra_CFLAGS)$(CFLAGS)/obj=$@ $(extra_CPPFLAGS)$(CPPFLAGS) $1
-LINK.cmd = $(LD)$(extra_LDFLAGS)$(LDFLAGS)/exe=$@ $(subst $s,$c,$^)$(LDLIBS)
+LINK.cmd = $(LD)$(extra_LDFLAGS)$(LDFLAGS)/exe=$@ $(subst $s,$c,$1)$(LDLIBS)
# Don't know how to do this
CHECK.cmd =
-define RM.cmd
+MKDIR.cmd = create/dir $1
+RM.cmd = delete $1
+CP.cmd = copy $1 $2
+
+define CLEANSPACE
-purge [...]
- -$(RM) $(PROG);
- -$(RM) $(src)*.$(OBJEXT);
+ -delete $(PROG);
+ -delete $(src)*.$(OBJEXT);
endef
$(OUTDIR)$(src)config.h: $(SRCDIR)$(src)config.h.W32
- $(CP.cmd)
+ $(call CP.cmd,$<,$@)
diff --git a/mk/Windows32.mk b/mk/Windows32.mk
index 1cbe80b7..2e1f3d79 100644
--- a/mk/Windows32.mk
+++ b/mk/Windows32.mk
@@ -24,10 +24,13 @@ TARGET_TYPE = release
# TOOLCHAIN can be either "msvc" or "gcc"
TOOLCHAIN = msvc
+# Translate a POSIX path into a Windows path. Don't bother with drives.
+# Used only inside recipes, with DOS/CMD tools that require it.
+P2W = $(subst /,\,$1)
prog_SOURCES += $(loadavg_SOURCES) $(glob_SOURCES) $(w32_SOURCES)
-BUILT_SOURCES += $(lib)fnmatch.h $(lib)glob.h
+BUILT_SOURCES += $(lib)alloca.h $(lib)fnmatch.h $(lib)glob.h
w32_LIBS = kernel32 user32 gdi32 winspool comdlg32 advapi32 shell32 ole32 \
oleaut32 uuid odbc32 odbccp32
@@ -84,18 +87,13 @@ release_gcc_CFLAGS = -O2
# ---
-LINK.cmd = $(LD) $(extra_LDFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) $(LINK_OUTPUT)
+LINK.cmd = $(LD) $(extra_LDFLAGS) $(LDFLAGS) $(TARGET_ARCH) $1 $(LDLIBS) $(LINK_OUTPUT)
CHECK.cmd = cmd /c cd tests \& .\run_make_tests.bat -make ../$(PROG)
-MKDIR = cmd /c mkdir
-MKDIR.cmd = $(MKDIR) $(subst /,\\,$@)
-
-RM = cmd /c del /F /Q
-RM.cmd = $(RM) $(subst /,\\,$(OBJECTS) $(PROG))
-
-CP = cmd /c copy /Y
-CP.cmd = $(CP) $(subst /,\\,$< $@)
+MKDIR.cmd = cmd /c mkdir $(call P2W,$1)
+RM.cmd = cmd /c del /F /Q $(call P2W,$1)
+CP.cmd = cmd /c copy /Y $(call P2W,$1 $2)
CC = $($(TOOLCHAIN)_CC)
LD = $($(TOOLCHAIN)_LD)
@@ -121,4 +119,4 @@ extra_LDFLAGS = $(call _CUSTOM,LDFLAGS)
LDLIBS = $(call _CUSTOM,LDLIBS)
$(OUTDIR)src/config.h: $(SRCDIR)/src/config.h.W32
- $(CP.cmd)
+ $(call CP.cmd,$<,$@)
diff --git a/mk/msdosdjgpp.mk b/mk/msdosdjgpp.mk
index 2da5bc50..e6b87ea8 100644
--- a/mk/msdosdjgpp.mk
+++ b/mk/msdosdjgpp.mk
@@ -23,22 +23,21 @@ EXEEXT = .exe
CC = gcc
+# Translate a POSIX path into a Windows path. Don't bother with drives.
+# Used only inside recipes, with DOS/CMD tools that require it.
+P2W = $(subst /,\,$1)
+
prog_SOURCES += $(loadavg_SOURCES) $(glob_SOURCES)
-BUILT_SOURCES += $(lib)fnmatch.h $(lib)glob.h
+BUILT_SOURCES += $(lib)alloca.h $(lib)fnmatch.h $(lib)glob.h
INCLUDEDIR = c:/djgpp/include
LIBDIR = c:/djgpp/lib
LOCALEDIR = c:/djgpp/share
-MKDIR = command.com /c mkdir
-MKDIR.cmd = $(MKDIR) $(subst /,\\,$@)
-
-RM = command.com /c del /F /Q
-RM.cmd = $(RM) $(subst /,\\,$(OBJECTS) $(PROG))
-
-CP = command.com /c copy /Y
-CP.cmd = $(CP) $(subst /,\\,$< $@)
+MKDIR.cmd = command.com /c mkdir $(call P2W,$1)
+RM.cmd = command.com /c del /F /Q $(call P2W,$1)
+CP.cmd = command.com /c copy /Y $(call P2W,$1 $2)
$(OUTDIR)src/config.h: $(SRCDIR)/src/configh.dos
- $(CP.cmd)
+ $(call CP.cmd,$<,$@)