From 23554ee65897c968a2ab56c3a6f248e7037b1098 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Thu, 2 Aug 2018 20:51:11 -0400 Subject: 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. --- mk/Amiga.mk | 9 ++++----- mk/VMS.mk | 20 ++++++++++---------- mk/Windows32.mk | 20 +++++++++----------- mk/msdosdjgpp.mk | 19 +++++++++---------- 4 files changed, 32 insertions(+), 36 deletions(-) (limited to 'mk') 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,$<,$@) -- cgit v1.2.1