summaryrefslogtreecommitdiff
path: root/Basic.mk.template
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2017-11-19 13:49:26 -0500
committerPaul Smith <psmith@gnu.org>2017-11-19 14:07:22 -0500
commitfb779d2f1e26a280f381886f3cdf444102676249 (patch)
tree4e3dca8cf801845720296a02e2f9266e4c30164b /Basic.mk.template
parent1af314465e5dfe3e8baa839a32a72e83c04f26ef (diff)
downloadmake-git-fb779d2f1e26a280f381886f3cdf444102676249.tar.gz
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory. Update all scripting and recommendations to support this change. * *.c, *.h, w32/*: Move to src/ * configure.ac, Makefile.am, maintMakefile: Locate new source files. * Basic.mk.template, mk/*: Update for new source file locations. * NEWS, README.DOS.template: Update for new locations. * build.template, build_w32.bat, builddos.bat: Ditto. * po/POTFILES.in: Ditto * tests/run_make_tests.pl, tests/scripts/features/load*: Ditto. * make.1: Move to doc. * mk/VMS.mk: Add support for building on VMS (hopefully). * makefile.vms, prepare_w32.bat: Remove. * SCOPTIONS: Update to define HAVE_CONFIG_H
Diffstat (limited to 'Basic.mk.template')
-rw-r--r--Basic.mk.template47
1 files changed, 34 insertions, 13 deletions
diff --git a/Basic.mk.template b/Basic.mk.template
index ab45f87f..64cd9c3a 100644
--- a/Basic.mk.template
+++ b/Basic.mk.template
@@ -28,20 +28,40 @@
all:
-make_SOURCES = %make_SOURCES% remote-stub.c
+src = src/
+glob = glob/
+
+make_SOURCES = %make_SOURCES%
glob_SOURCES = %glob_SOURCES%
+loadavg_SOURCES = %loadavg_SOURCES%
+alloca_SOURCES = %alloca_SOURCES%
w32_SOURCES = %w32_SOURCES%
vms_SOURCES = %vms_SOURCES%
amiga_SOURCES = %amiga_SOURCES%
-OUTDIR = .
+posix_SOURCES = $(src)posixos.c
+remote_SOURCES = $(src)remote-stub.c
+
+OUTDIR =
SRCDIR = .
OBJEXT = o
EXEEXT =
-PROG = $(OUTDIR)/make$(EXEEXT)
+PREFIX = /usr/local
+INCLUDEDIR = $(PREFIX)/include
+LIBDIR = $(PREFIX)/lib
+LOCALEDIR = $(PREFIX)/share
+
+PROG = $(OUTDIR)make$(EXEEXT)
+
+prog_SOURCES = $(make_SOURCES) $(remote_SOURCES)
+
+OBJECTS = $(patsubst %.c,$(OUTDIR)%.$(OBJEXT),$(prog_SOURCES))
+OBJDIRS = $(addsuffix .,$(sort $(dir $(OBJECTS))))
+
+# Use the default value of CC
LD = $(CC)
# Reserved for command-line override
@@ -49,9 +69,8 @@ CPPFLAGS =
CFLAGS = -g -O2
LDFLAGS =
-prog_SOURCES = $(make_SOURCES)
-
-extra_CPPFLAGS = -DHAVE_CONFIG_H -I$(OUTDIR) -I$(SRCDIR)
+extra_CPPFLAGS = -DHAVE_CONFIG_H -I$(OUTDIR)src -I$(SRCDIR)/src \
+ -DLIBDIR=\"$(LIBDIR)\" -DINCLUDEDIR=\"$(INCLUDEDIR)\" -DLOCALEDIR=\"$(LOCALDIR)\"
extra_CFLAGS =
extra_LDFLAGS = $(extra_CFLAGS) $(CFLAGS)
@@ -65,7 +84,10 @@ COMPILE.cmd = $(CC) $(extra_CFLAGS) $(CFLAGS) $(extra_CPPFLAGS) $(CPPFLAGS) $(TA
LINK.cmd = $(LD) $(extra_LDFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) $(LINK_OUTPUT)
-CHECK.cmd = cd tests && ./run_make_tests -make $(shell cd $(<D) && pwd)/$(<F)
+CHECK.cmd = cd $(SRCDIR)/tests && ./run_make_tests -make $(shell cd $(<D) && pwd)/$(<F)
+
+CP = cp
+CP.cmd = $(CP) $< $@
MKDIR = mkdir -p
MKDIR.cmd = $(MKDIR) $@
@@ -74,7 +96,7 @@ RM = rm -f
RM.cmd = $(RM) $(OBJECTS) $(PROG)
# Load overrides for the above variables.
-include $(wildcard mk/$(lastword $(subst -, ,$(MAKE_HOST)).mk))
+include $(firstword $(wildcard $(SRCDIR)/mk/$(lastword $(subst -, ,$(MAKE_HOST)).mk) $(OUTDIR)mk/Posix.mk $(SRCDIR)/mk/Posix.mk))
VERSION = %VERSION%
@@ -82,16 +104,15 @@ VPATH = $(SRCDIR)
all: $(PROG)
-OBJECTS = $(patsubst %.c,$(OUTDIR)/%.$(OBJEXT),$(prog_SOURCES))
-
$(PROG): $(OBJECTS)
$(LINK.cmd)
-.SECONDEXPANSION:
-$(OBJECTS): $(OUTDIR)/%.$(OBJEXT): %.c | $$(@D)/.
+$(OBJECTS): $(OUTDIR)%.$(OBJEXT): %.c
$(COMPILE.cmd)
-$(addsuffix .,$(sort $(dir $(OBJECTS)))):
+$(OBJECTS): | $(OBJDIRS)
+
+$(OBJDIRS):
$(MKDIR.cmd)
check: $(PROG)