]> git.ipfire.org Git - thirdparty/make.git/commitdiff
Rework directory structure to use GNU-recommended "src" directory.
authorPaul Smith <psmith@gnu.org>
Sun, 19 Nov 2017 18:49:26 +0000 (13:49 -0500)
committerPaul Smith <psmith@gnu.org>
Sun, 19 Nov 2017 19:07:22 +0000 (14:07 -0500)
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

97 files changed:
.gitignore
Basic.mk.template
Makefile.am
NEWS
README.DOS.template
SCOPTIONS
build.template
build_w32.bat
builddos.bat
config/acinclude.m4 [moved from acinclude.m4 with 100% similarity]
configure.ac
doc/make.1 [moved from make.1 with 100% similarity]
maintMakefile
makefile.vms [deleted file]
mk/Amiga.mk
mk/Posix.mk.in [new file with mode: 0644]
mk/VMS.mk [new file with mode: 0644]
mk/Windows32.mk
mk/msdosdjgpp.mk
po/POTFILES.in
prepare_w32.bat [deleted file]
src/alloca.c [moved from alloca.c with 100% similarity]
src/amiga.c [moved from amiga.c with 100% similarity]
src/amiga.h [moved from amiga.h with 100% similarity]
src/ar.c [moved from ar.c with 100% similarity]
src/arscan.c [moved from arscan.c with 100% similarity]
src/commands.c [moved from commands.c with 100% similarity]
src/commands.h [moved from commands.h with 100% similarity]
src/config.ami.template [moved from config.ami.template with 100% similarity]
src/config.h-vms.template [moved from config.h-vms.template with 100% similarity]
src/config.h.W32.template [moved from config.h.W32.template with 100% similarity]
src/configh.dos.template [moved from configh.dos.template with 100% similarity]
src/debug.h [moved from debug.h with 100% similarity]
src/default.c [moved from default.c with 100% similarity]
src/dep.h [moved from dep.h with 100% similarity]
src/dir.c [moved from dir.c with 100% similarity]
src/expand.c [moved from expand.c with 100% similarity]
src/file.c [moved from file.c with 100% similarity]
src/filedef.h [moved from filedef.h with 100% similarity]
src/function.c [moved from function.c with 100% similarity]
src/getloadavg.c [moved from getloadavg.c with 100% similarity]
src/getopt.c [moved from getopt.c with 100% similarity]
src/getopt.h [moved from getopt.h with 100% similarity]
src/getopt1.c [moved from getopt1.c with 100% similarity]
src/gettext.h [moved from gettext.h with 100% similarity]
src/gmk-default.scm [moved from gmk-default.scm with 100% similarity]
src/gnumake.h [moved from gnumake.h with 100% similarity]
src/guile.c [moved from guile.c with 100% similarity]
src/hash.c [moved from hash.c with 100% similarity]
src/hash.h [moved from hash.h with 100% similarity]
src/implicit.c [moved from implicit.c with 100% similarity]
src/job.c [moved from job.c with 100% similarity]
src/job.h [moved from job.h with 100% similarity]
src/load.c [moved from load.c with 100% similarity]
src/loadapi.c [moved from loadapi.c with 100% similarity]
src/main.c [moved from main.c with 100% similarity]
src/makeint.h [moved from makeint.h with 100% similarity]
src/misc.c [moved from misc.c with 100% similarity]
src/os.h [moved from os.h with 100% similarity]
src/output.c [moved from output.c with 100% similarity]
src/output.h [moved from output.h with 100% similarity]
src/posixos.c [moved from posixos.c with 100% similarity]
src/read.c [moved from read.c with 100% similarity]
src/remake.c [moved from remake.c with 100% similarity]
src/remote-cstms.c [moved from remote-cstms.c with 100% similarity]
src/remote-stub.c [moved from remote-stub.c with 100% similarity]
src/rule.c [moved from rule.c with 100% similarity]
src/rule.h [moved from rule.h with 100% similarity]
src/signame.c [moved from signame.c with 100% similarity]
src/strcache.c [moved from strcache.c with 100% similarity]
src/variable.c [moved from variable.c with 100% similarity]
src/variable.h [moved from variable.h with 100% similarity]
src/version.c [moved from version.c with 100% similarity]
src/vms_exit.c [moved from vms_exit.c with 100% similarity]
src/vms_export_symbol.c [moved from vms_export_symbol.c with 100% similarity]
src/vms_progname.c [moved from vms_progname.c with 100% similarity]
src/vmsdir.h [moved from vmsdir.h with 100% similarity]
src/vmsfunctions.c [moved from vmsfunctions.c with 100% similarity]
src/vmsify.c [moved from vmsify.c with 100% similarity]
src/vmsjobs.c [moved from vmsjobs.c with 100% similarity]
src/vpath.c [moved from vpath.c with 100% similarity]
src/w32/compat/dirent.c [moved from w32/compat/dirent.c with 100% similarity]
src/w32/compat/posixfcn.c [moved from w32/compat/posixfcn.c with 100% similarity]
src/w32/include/dirent.h [moved from w32/include/dirent.h with 100% similarity]
src/w32/include/dlfcn.h [moved from w32/include/dlfcn.h with 100% similarity]
src/w32/include/pathstuff.h [moved from w32/include/pathstuff.h with 100% similarity]
src/w32/include/sub_proc.h [moved from w32/include/sub_proc.h with 100% similarity]
src/w32/include/w32err.h [moved from w32/include/w32err.h with 100% similarity]
src/w32/pathstuff.c [moved from w32/pathstuff.c with 100% similarity]
src/w32/subproc/misc.c [moved from w32/subproc/misc.c with 100% similarity]
src/w32/subproc/proc.h [moved from w32/subproc/proc.h with 100% similarity]
src/w32/subproc/sub_proc.c [moved from w32/subproc/sub_proc.c with 100% similarity]
src/w32/subproc/w32err.c [moved from w32/subproc/w32err.c with 100% similarity]
src/w32/w32os.c [moved from w32/w32os.c with 100% similarity]
tests/run_make_tests.pl
tests/scripts/features/load
tests/scripts/features/loadapi

index 89036d480408d1522fbbd6444a75cef33634ef5a..596f33d0e46716e32764722f8157ae50a49e80d8 100644 (file)
@@ -22,6 +22,8 @@ config.log
 config.status
 configure
 stamp-h1
+.dirstamp
+mk/Posix.mk
 
 # Build artifacts
 .deps
index ab45f87f7c4b69582d74635f925bcb70182fa0be..64cd9c3ad5a8393c18a67f850ad4b1ae5844768d 100644 (file)
 
 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)
index 89e345e7bf729f70727c233b542a1e2250992bfc..28e21a5b28035d31bee6496896d284f92548aafd 100644 (file)
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AUTOMAKE_OPTIONS = dist-bzip2 silent-rules std-options subdir-objects
+AUTOMAKE_OPTIONS = dist-bzip2 silent-rules std-options subdir-objects nostdinc
 ACLOCAL_AMFLAGS = -I config
 
 MAKE_HOST =    @MAKE_HOST@
@@ -24,29 +24,37 @@ MAKE_HOST = @MAKE_HOST@
 SUBDIRS =      glob config po doc
 
 bin_PROGRAMS = make
-include_HEADERS = gnumake.h
+include_HEADERS = src/gnumake.h
 
-man_MANS =     make.1
+man_MANS =     doc/make.1
 
-make_SRCS =    ar.c arscan.c commands.c commands.h debug.h default.c dep.h \
-               dir.c expand.c file.c filedef.h function.c getopt.c getopt.h \
-               getopt1.c gettext.h guile.c hash.c hash.h implicit.c job.c \
-               job.h load.c loadapi.c main.c makeint.h misc.c os.h output.c \
-               output.h read.c remake.c rule.c rule.h signame.c strcache.c \
-               variable.c variable.h version.c vpath.c
+make_SRCS =    src/ar.c src/arscan.c src/commands.c src/commands.h \
+               src/debug.h src/default.c src/dep.h src/dir.c src/expand.c \
+               src/file.c src/filedef.h src/function.c src/getopt.c \
+               src/getopt.h src/getopt1.c src/gettext.h src/guile.c \
+               src/hash.c src/hash.h src/implicit.c src/job.c src/job.h \
+               src/load.c src/loadapi.c src/main.c src/makeint.h src/misc.c \
+               src/os.h src/output.c src/output.h src/read.c src/remake.c \
+               src/rule.c src/rule.h src/signame.c src/strcache.c \
+               src/variable.c src/variable.h src/version.c src/vpath.c
 
 glob_SRCS =    glob/fnmatch.c glob/fnmatch.h glob/glob.c glob/glob.h
 
-w32_SRCS =     w32/pathstuff.c w32/w32os.c w32/compat/dirent.c \
-               w32/compat/posixfcn.c w32/include/dirent.h w32/include/dlfcn.h \
-               w32/include/pathstuff.h w32/include/sub_proc.h \
-               w32/include/w32err.h w32/subproc/misc.c w32/subproc/proc.h \
-               w32/subproc/sub_proc.c w32/subproc/w32err.c
+loadavg_SRCS = src/getloadavg.c
 
-vms_SRCS =     vms_exit.c vms_export_symbol.c vms_progname.c vmsdir.h \
-               vmsfunctions.c vmsify.c vmsjobs.c
+alloca_SRCS =  src/alloca.c
 
-amiga_SRCS =   amiga.c amiga.h
+w32_SRCS =     src/w32/pathstuff.c src/w32/w32os.c src/w32/compat/dirent.c \
+               src/w32/compat/posixfcn.c src/w32/include/dirent.h \
+               src/w32/include/dlfcn.h src/w32/include/pathstuff.h \
+               src/w32/include/sub_proc.h src/w32/include/w32err.h \
+               src/w32/subproc/misc.c src/w32/subproc/proc.h \
+               src/w32/subproc/sub_proc.c src/w32/subproc/w32err.c
+
+vms_SRCS =     src/vms_exit.c src/vms_export_symbol.c src/vms_progname.c \
+               src/vmsdir.h src/vmsfunctions.c src/vmsify.c
+
+amiga_SRCS =   src/amiga.c src/amiga.h
 
 make_SOURCES = $(make_SRCS)
 EXTRA_make_SOURCES = $(amiga_SRCS) $(vms_SRCS)
@@ -56,42 +64,44 @@ make_LDADD =        $(GUILE_LIBS) $(LIBOBJS) $(ALLOCA) $(GLOBLIB) \
 
 localedir =    $(datadir)/locale
 
-AM_CPPFLAGS =  -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\" \
-               -DLOCALEDIR=\"$(localedir)\" $(GLOBINC)
+AM_CPPFLAGS =  -Isrc -I$(srcdir)/src $(GLOBINC) -DLIBDIR=\"$(libdir)\" \
+               -DINCLUDEDIR=\"$(includedir)\" -DLOCALEDIR=\"$(localedir)\"
 
 AM_CFLAGS =    $(GUILE_CFLAGS)
 
 if WINDOWSENV
   make_SOURCES += $(w32_SRCS)
-  AM_CPPFLAGS  += -I $(top_srcdir)/w32/include
+  AM_CPPFLAGS  += -I $(top_srcdir)/src/w32/include
 else
-  make_SOURCES += posixos.c
+  make_SOURCES += src/posixos.c
 endif
 
 if USE_CUSTOMS
-  make_SOURCES += remote-cstms.c
+  make_SOURCES += src/remote-cstms.c
 else
-  make_SOURCES += remote-stub.c
+  make_SOURCES += src/remote-stub.c
 endif
 
 # Extra stuff to include in the distribution.
 
-mk_FILES =     Basic.mk mk/Amiga.mk mk/Windows32.mk mk/msdosdjgpp.mk
+mk_FILES =     Basic.mk mk/msdosdjgpp.mk mk/Amiga.mk mk/VMS.mk mk/Windows32.mk
+# We don't need this, since the standard automake output will do.
+#mk/Posix.mk.in
 
-# test/scripts are added via dist-hook below.
 test_FILES =   tests/run_make_tests tests/run_make_tests.bat \
                tests/run_make_tests.pl tests/test_driver.pl \
                tests/config-flags.pm.in tests/config_flags_pm.com \
                tests/mkshadow tests/jhelp.pl tests/guile.supp tests/README
+# test/scripts are added via dist-hook below.
 
 EXTRA_DIST =   ChangeLog README build.sh.in $(man_MANS) \
                README.customs README.OS2 \
-               README.Amiga SCOPTIONS config.ami \
-               README.DOS builddos.bat configh.dos \
-               README.W32 config.h.W32 build_w32.bat \
-               README.VMS makefile.vms makefile.com config.h-vms \
+               README.Amiga SCOPTIONS src/config.ami \
+               README.DOS builddos.bat src/configh.dos \
+               README.W32 build_w32.bat src/config.h.W32 \
+               README.VMS makefile.com src/config.h-vms src/vmsjobs.c \
                vms_export_symbol_test.com \
-               gmk-default.scm gmk-default.h \
+               src/gmk-default.scm src/gmk-default.h \
                $(mk_FILES) $(test_FILES)
 
 
@@ -130,12 +140,12 @@ install-exec-local:
 
 # --------------- Generate the Guile default module content
 
-guile.$(OBJEXT): gmk-default.h
-gmk-default.h: $(srcdir)/gmk-default.scm
+src/guile.$(OBJEXT): src/gmk-default.h
+src/gmk-default.h: $(srcdir)/src/gmk-default.scm
        (echo 'static const char *const GUILE_module_defn = " '\\ \
          && sed -e 's/;.*//' -e '/^[ \t]*$$/d' -e 's/"/\\"/g' -e 's/$$/ \\/' \
-                $(srcdir)/gmk-default.scm \
-         && echo '";') > $@
+                $(srcdir)/src/gmk-default.scm \
+         && echo '";') > src/gmk-default.h
 
 # --------------- Local DIST Section
 
@@ -169,8 +179,8 @@ check-loadavg: loadavg$(EXEEXT)
 
 # The loadavg function is invoked during "make check" to test getloadavg.
 check_PROGRAMS = loadavg
-nodist_loadavg_SOURCES = getloadavg.c
-loadavg_CPPFLAGS = -DTEST
+nodist_loadavg_SOURCES = $(loadavg_SRCS)
+loadavg_CPPFLAGS = -Isrc -I$(srcdir)/src -DTEST
 loadavg_LDADD = @GETLOADAVG_LIBS@
 
 # > check-regression
diff --git a/NEWS b/NEWS
index a452faed6b02a8099171341657b3ebfe61febf93..aa0119143f094d168bd66e752e92d6b96fb424ef 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -43,6 +43,9 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=108&set
   N-processor systems with less fear of overload.
   Patch provided by Sven C. Dack <sven.c.dack@sky.com>
 
+* Rework the source distribution to move source files into the src/*
+  subdirectory.  This aligns with modern best practices in GNU.
+
 * The previous limit of 63 jobs under -jN on MS-Windows is now
   increased to 4095.  That limit includes the subprocess started by
   the $(shell) function.
index ae15bd7c67a3268bc3501a5d339126ac8b9d87aa..5e75f9fa9f1f7af6e1ecffae46507644fae7c4ee 100644 (file)
@@ -67,7 +67,7 @@ To build from sources:
    4. If you are building from outside of the source directory, you
       need to tell Make where the sources are, like this:
 
-          make srcdir=c:/djgpp/gnu/make
+          make -f c:/djgpp/gnu/make/Basic.mk SRCDIR=c:/djgpp/gnu/make
 
       or:
 
index 3d69fb42e3d7541b9f2b25904cbaf9ec0c58583b..758f82f93ecaea8e88f41facf2f54a011cd0a4c4 100644 (file)
--- a/SCOPTIONS
+++ b/SCOPTIONS
@@ -3,6 +3,7 @@ OPTIMIZE
 NOVERSION
 OPTIMIZERTIME
 OPTIMIZERALIAS
+DEFINE HAVE_CONFIG_H
 DEFINE INCLUDEDIR="include:"
 DEFINE LIBDIR="lib:"
 DEFINE NO_ALLOCA
index 4b146933dfee7834c3f37c73c1555b12676f588d..b16d397f3c14bf1877028b52affc7469c4b5ad9c 100644 (file)
@@ -44,7 +44,6 @@ libdir=${exec_prefix}/lib
 includedir=${prefix}/include
 
 localedir=${prefix}/share/locale
-aliaspath=${localedir}${PATH_SEPARATOR}.
 
 defines="-DLOCALEDIR=\"${localedir}\" -DLIBDIR=\"${libdir}\" -DINCLUDEDIR=\"${includedir}\""' @DEFS@'
 
@@ -52,7 +51,7 @@ defines="-DLOCALEDIR=\"${localedir}\" -DLIBDIR=\"${libdir}\" -DINCLUDEDIR=\"${in
 set -e
 
 # These are all the objects we need to link together.
-objs="%objs% remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
+objs="%objs% src/remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
 
 if [ x"$GLOBLIB" != x ]; then
   objs="$objs %globobjs%"
@@ -63,7 +62,7 @@ fi
 for file in `echo ${objs} | sed 's/\.'${OBJEXT}'/.c/g'`; do
   echo compiling ${file}...
   $CC $defines $CPPFLAGS $CFLAGS \
-      -c -I. -I${srcdir} ${globinc} ${srcdir}/$file
+      -c -Isrc -I${srcdir}/src ${globinc} ${srcdir}/$file
 done
 
 # The object files were actually all put in the current directory.
index 73afa5d30039003898ec70bfb64e98529e25ac6b..12a1d9324412860594cfa287bdd1b7d50bac8e2c 100755 (executable)
@@ -24,6 +24,7 @@ if "%1" == "--help" goto Usage
 set MAKE=gnumake\r
 set GUILE=Y\r
 set COMPILER=cl.exe\r
+set O=obj\r
 set ARCH=x64\r
 set DEBUG=N\r
 \r
@@ -53,6 +54,7 @@ goto ParseSW
 \r
 :SetCC\r
 set COMPILER=gcc\r
+set O=o\r
 echo Building with GCC\r
 shift\r
 goto ParseSW\r
@@ -146,58 +148,61 @@ if exist %OUTDIR%\nul rmdir /S /Q %OUTDIR%
 \r
 :: Recreate it\r
 mkdir %OUTDIR%\r
+mkdir %OUTDIR%\src\r
+mkdir %OUTDIR%\src\w32\r
+mkdir %OUTDIR%\src\w32\compat\r
+mkdir %OUTDIR%\src\w32\subproc\r
 mkdir %OUTDIR%\glob\r
-mkdir %OUTDIR%\w32\r
-mkdir %OUTDIR%\w32\compat\r
-mkdir %OUTDIR%\w32\subproc\r
 \r
 if "%GUILE%" == "Y" call :ChkGuile\r
 \r
 echo.\r
 echo Compiling %OUTDIR% version\r
 \r
-if exist config.h.W32.template call :ConfigSCM\r
-copy config.h.W32 %OUTDIR%\config.h\r
-\r
-call :Compile ar\r
-call :Compile arscan\r
-call :Compile commands\r
-call :Compile default\r
-call :Compile dir\r
-call :Compile expand\r
-call :Compile file\r
-call :Compile function\r
-call :Compile getloadavg\r
-call :Compile getopt\r
-call :Compile getopt1\r
+if exist src\config.h.W32.template call :ConfigSCM\r
+copy src\config.h.W32 %OUTDIR%\src\config.h\r
+\r
+if exist %OUTDIR%\link.sc del %OUTDIR%\link.sc\r
+\r
+call :Compile src\ar\r
+call :Compile src\arscan\r
+call :Compile src\commands\r
+call :Compile src\default\r
+call :Compile src\dir\r
+call :Compile src\expand\r
+call :Compile src\file\r
+call :Compile src\function\r
+call :Compile src\getloadavg\r
+call :Compile src\getopt\r
+call :Compile src\getopt1\r
+call :Compile src\guile GUILE\r
+call :Compile src\hash\r
+call :Compile src\implicit\r
+call :Compile src\job\r
+call :Compile src\load\r
+call :Compile src\loadapi\r
+call :Compile src\main GUILE\r
+call :Compile src\misc\r
+call :Compile src\output\r
+call :Compile src\read\r
+call :Compile src\remake\r
+call :Compile src\remote-stub\r
+call :Compile src\rule\r
+call :Compile src\signame\r
+call :Compile src\strcache\r
+call :Compile src\variable\r
+call :Compile src\version\r
+call :Compile src\vpath\r
+call :Compile src\w32\pathstuff\r
+call :Compile src\w32\w32os\r
+call :Compile src\w32\compat\posixfcn\r
+call :Compile src\w32\subproc\misc\r
+call :Compile src\w32\subproc\sub_proc\r
+call :Compile src\w32\subproc\w32err\r
 call :Compile glob\fnmatch\r
 call :Compile glob\glob\r
-call :Compile guile GUILE\r
-call :Compile hash\r
-call :Compile implicit\r
-call :Compile job\r
-call :Compile load\r
-call :Compile loadapi\r
-call :Compile main GUILE\r
-call :Compile misc\r
-call :Compile output\r
-call :Compile read\r
-call :Compile remake\r
-call :Compile remote-stub\r
-call :Compile rule\r
-call :Compile signame\r
-call :Compile strcache\r
-call :Compile variable\r
-call :Compile version\r
-call :Compile vpath\r
-call :Compile w32\pathstuff\r
-call :Compile w32\w32os\r
-call :Compile w32\compat\posixfcn\r
-call :Compile w32\subproc\misc\r
-call :Compile w32\subproc\sub_proc\r
-call :Compile w32\subproc\w32err\r
-\r
-if not "%COMPILER%" == "gcc" call :Compile w32\compat\dirent\r
+\r
+if not "%COMPILER%" == "gcc" call :Compile src\w32\compat\dirent\r
 \r
 call :Link\r
 \r
@@ -208,21 +213,21 @@ if exist %OUTDIR%\%MAKE%.exe copy /Y Basic.mk Makefile
 goto :EOF\r
 \r
 :Compile\r
+echo %OUTDIR%\%1.%O% >>%OUTDIR%\link.sc\r
 set EXTRAS=\r
 if "%2" == "GUILE" set "EXTRAS=%GUILECFLAGS%"\r
 if "%COMPILER%" == "gcc" goto GccCompile\r
 \r
 :: MSVC Compile\r
 echo on\r
-%COMPILER% /nologo /MT /W4 /EHsc %OPTS% /I %OUTDIR% /I . /I glob /I w32/include /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR%OUTDIR% /Fp%OUTDIR%\%MAKE%.pch /Fo%OUTDIR%\%1.obj /Fd%OUTDIR%\%MAKE%.pdb %EXTRAS% /c %1.c\r
+%COMPILER% /nologo /MT /W4 /EHsc %OPTS% /I %OUTDIR%/src /I src /I glob /I src/w32/include /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR%OUTDIR% /Fp%OUTDIR%\%MAKE%.pch /Fo%OUTDIR%\%1.%O% /Fd%OUTDIR%\%MAKE%.pdb %EXTRAS% /c %1.c\r
 @echo off\r
-echo %OUTDIR%\%1.obj >>%OUTDIR%\link.sc\r
 goto :EOF\r
 \r
 :GccCompile\r
 :: GCC Compile\r
 echo on\r
-gcc -mthreads -Wall -std=gnu99 -gdwarf-2 -g3 %OPTS% -I%OUTDIR% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H %EXTRAS% -o %OUTDIR%\%1.o -c %1.c\r
+gcc -mthreads -Wall -std=gnu99 -gdwarf-2 -g3 %OPTS% -I%OUTDIR%/src -I./src -I./glob -I./src/w32/include -DWINDOWS32 -DHAVE_CONFIG_H %EXTRAS% -o %OUTDIR%\%1.%O% -c %1.c\r
 @echo off\r
 goto :EOF\r
 \r
@@ -240,18 +245,19 @@ goto :EOF
 :GccLink\r
 :: GCC Link\r
 echo on\r
-gcc -mthreads -gdwarf-2 -g3 -o %OUTDIR%\%MAKE%.exe %OUTDIR%\variable.o %OUTDIR%\rule.o %OUTDIR%\remote-stub.o %OUTDIR%\commands.o %OUTDIR%\file.o %OUTDIR%\getloadavg.o %OUTDIR%\default.o %OUTDIR%\signame.o %OUTDIR%\expand.o %OUTDIR%\dir.o %OUTDIR%\main.o %OUTDIR%\getopt1.o %OUTDIR%\guile.o %OUTDIR%\job.o %OUTDIR%\output.o %OUTDIR%\read.o %OUTDIR%\version.o %OUTDIR%\getopt.o %OUTDIR%\arscan.o %OUTDIR%\remake.o %OUTDIR%\misc.o %OUTDIR%\hash.o %OUTDIR%\strcache.o %OUTDIR%\ar.o %OUTDIR%\function.o %OUTDIR%\vpath.o %OUTDIR%\implicit.o %OUTDIR%\loadapi.o %OUTDIR%\load.o %OUTDIR%\glob\glob.o %OUTDIR%\glob\fnmatch.o %OUTDIR%\w32\pathstuff.o %OUTDIR%\w32\compat\posixfcn.o %OUTDIR%\w32\w32os.o %OUTDIR%\w32\subproc\misc.o %OUTDIR%\w32\subproc\sub_proc.o %OUTDIR%\w32\subproc\w32err.o %GUILELIBS% -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -Wl,--out-implib=%OUTDIR%\libgnumake-1.dll.a\r
+echo %GUILELIBS% -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 >>%OUTDIR%\link.sc\r
+gcc -mthreads -gdwarf-2 -g3 %OPTS% -o %OUTDIR%\%MAKE%.exe @%OUTDIR%\link.sc -Wl,--out-implib=%OUTDIR%\libgnumake-1.dll.a\r
 @echo off\r
 goto :EOF\r
 \r
 :ConfigSCM\r
 echo Generating config from SCM templates\r
-sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.ac > %OUTDIR%\config.h.W32.sed\r
-echo s,%%PACKAGE%%,make,g >> %OUTDIR%\config.h.W32.sed\r
-sed -f %OUTDIR%\config.h.W32.sed config.h.W32.template > config.h.W32\r
-echo static const char *const GUILE_module_defn = ^" \gmk-default.h\r
-sed -e "s/;.*//" -e "/^[ \t]*$/d" -e "s/\"/\\\\\"/g" -e "s/$/ \\\/" gmk-default.scm >> gmk-default.h\r
-echo ^";>> gmk-default.h\r
+sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.ac > %OUTDIR%\src\config.h.W32.sed\r
+echo s,%%PACKAGE%%,make,g >> %OUTDIR%\src\config.h.W32.sed\r
+sed -f %OUTDIR%\src\config.h.W32.sed src\config.h.W32.template > src\config.h.W32\r
+echo static const char *const GUILE_module_defn = ^" \ > src\gmk-default.h\r
+sed -e "s/;.*//" -e "/^[ \t]*$/d" -e "s/\"/\\\\\"/g" -e "s/$/ \\\/" src\gmk-default.scm >> src\gmk-default.h\r
+echo ^";>> src\gmk-default.h\r
 goto :EOF\r
 \r
 :ChkGuile\r
@@ -318,6 +324,7 @@ set GUILELIBS=
 set LINKOPTS=\r
 set MAKE=\r
 set NOGUILE=\r
+set O=\r
 set OPTS=\r
 set OUTDIR=\r
 set PKGMSC=\r
index b96318d5f54152a6d1d9a10149e5654f7789580b..0902b0d98bb06b6dd284c69e82f1a971fd480142 100644 (file)
@@ -31,39 +31,39 @@ if not "%XSRC%"=="%1" goto SmallEnv
 \r
 :SrcDone\r
 \r
-copy /Y %XSRC%/configh.dos ./config.h\r
+copy /Y %XSRC%/src/configh.dos ./src/config.h\r
 \r
 if not exist glob mkdir glob\r
 \r
 rem Echo ON so they will see what is going on.\r
 @echo on\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/commands.c -o commands.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/output.c -o output.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/job.c -o job.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/dir.c -o dir.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/file.c -o file.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/misc.c -o misc.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/main.c -o main.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -DINCLUDEDIR=\"c:/djgpp/include\" -O2 -g %XSRC%/read.c -o read.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -DLIBDIR=\"c:/djgpp/lib\" -O2 -g %XSRC%/remake.c -o remake.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/rule.c -o rule.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/implicit.c -o implicit.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/default.c -o default.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/variable.c -o variable.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/expand.c -o expand.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/function.c -o function.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/vpath.c -o vpath.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/hash.c -o hash.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/strcache.c -o strcache.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/version.c -o version.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/ar.c -o ar.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/arscan.c -o arscan.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/signame.c -o signame.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/remote-stub.c -o remote-stub.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/getopt.c -o getopt.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/getopt1.c -o getopt1.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/glob.c -o glob/glob.o\r
-gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/fnmatch.c -o glob/fnmatch.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/commands.c -o commands.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/output.c -o output.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/job.c -o job.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/dir.c -o dir.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/file.c -o file.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/misc.c -o misc.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/main.c -o main.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -DINCLUDEDIR=\"c:/djgpp/include\" -O2 -g %XSRC%/src/read.c -o read.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -DLIBDIR=\"c:/djgpp/lib\" -O2 -g %XSRC%/src/remake.c -o remake.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/rule.c -o rule.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/implicit.c -o implicit.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/default.c -o default.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/variable.c -o variable.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/expand.c -o expand.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/function.c -o function.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/vpath.c -o vpath.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/hash.c -o hash.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/strcache.c -o strcache.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/version.c -o version.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/ar.c -o ar.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/arscan.c -o arscan.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/signame.c -o signame.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/remote-stub.c -o remote-stub.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/getopt.c -o getopt.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/getopt1.c -o getopt1.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/glob.c -o glob/glob.o\r
+gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/fnmatch.c -o glob/fnmatch.o\r
 @echo off\r
 echo commands.o > respf.$$$\r
 for %%f in (job output dir file misc main read remake rule implicit default variable) do echo %%f.o >> respf.$$$\r
similarity index 100%
rename from acinclude.m4
rename to config/acinclude.m4
index b7500ce4a0a3df579c796b31b779c014d935c490..8c72568cf2767c51369e4ae52d511c5095dcfc4c 100644 (file)
@@ -22,8 +22,11 @@ AC_PREREQ([2.69])
 
 # Autoconf setup
 AC_CONFIG_AUX_DIR([config])
-AC_CONFIG_SRCDIR([vpath.c])
-AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_SRCDIR([src/vpath.c])
+AC_CONFIG_HEADERS([src/config.h])
+
+# For now all our libobj code is in src/
+AC_CONFIG_LIBOBJ_DIR([src])
 
 # Automake setup
 # We have to enable "foreign" because ChangeLog is auto-generated
@@ -505,6 +508,8 @@ AS_IF([test "x$make_cv_load" = xno && test "x$user_load" = xyes],
 # Specify what files are to be created.
 AC_CONFIG_FILES([Makefile glob/Makefile po/Makefile.in config/Makefile \
                  doc/Makefile tests/config-flags.pm])
+# We don't need this, since the standard automake output will do.
+#mk/Posix.mk
 
 # OK, do it!
 
similarity index 100%
rename from make.1
rename to doc/make.1
index 19a154f405e94f38b5194044256875a922912b81..c9e552e56109f4b2a62c71b491fba02de2bfbcaa 100644 (file)
@@ -36,7 +36,7 @@ AM_CPPFLAGS += $(MAKE_MAINTAINER_MODE)
 # -Wwrite-strings
 
 TEMPLATES = README README.DOS README.W32 README.OS2 \
-           config.ami configh.dos config.h.W32 config.h-vms
+           src/config.ami src/configh.dos src/config.h.W32 src/config.h-vms
 
 # Create preprocessor output files--GCC specific!
 %.i : %.c
@@ -53,19 +53,22 @@ $(TEMPLATES) : % : %.template Makefile
 
 # Construct Makefiles by adding on dependencies, etc.
 #
+srccvt = $(patsubst src/%,$$(src)%,$(filter %.c,$1))
 Basic.mk: Basic.mk.template .dep_segment Makefile
        rm -f $@
        sed -e 's@%VERSION%@$(VERSION)@g' \
-           -e 's@%make_SOURCES%@$(filter %.c,$(make_SRCS))@g' \
-           -e 's@%glob_SOURCES%@$(filter %.c,$(glob_SRCS))@g' \
-           -e 's@%w32_SOURCES%@$(filter %.c,$(w32_SRCS))@g' \
-           -e 's@%vms_SOURCES%@$(filter %.c,$(vms_SRCS))@g' \
-           -e 's@%amiga_SOURCES%@$(filter %.c,$(amiga_SRCS))@g' \
+           -e 's@%make_SOURCES%@$(call srccvt,$(make_SRCS))@g' \
+           -e 's@%glob_SOURCES%@$(patsubst glob/%,$$(glob)%,$(filter %.c,$(glob_SRCS)))@g' \
+           -e 's@%loadavg_SOURCES%@$(call srccvt,$(loadavg_SRCS))@g' \
+           -e 's@%alloca_SOURCES%@$(call srccvt,$(alloca_SRCS))@g' \
+           -e 's@%w32_SOURCES%@$(call srccvt,$(w32_SRCS))@g' \
+           -e 's@%vms_SOURCES%@$(call srccvt,$(vms_SRCS))@g' \
+           -e 's@%amiga_SOURCES%@$(call srccvt,$(amiga_SRCS))@g' \
          $< > $@
        echo >>$@; echo '# --------------- DEPENDENCIES' >>$@; echo '#' >>$@; \
-       sed -e 's@^\([^ ]*\)\.o:@$$(OUTDIR)/\1.$$(OBJEXT):@' \
+       sed -e 's@^\([^ ]*\)\.o:@$$(OUTDIR)\1.$$(OBJEXT):@' \
            -e 's@\([^ ]*\.[ch]\)@$$(SRCDIR)/\1@g' \
-           -e 's@$$(SRCDIR)/config.h@$$(OUTDIR)/config.h@g' \
+           -e 's@$$(SRCDIR)/src/config.h@$$(OUTDIR)src/config.h@g' \
          $(word 2,$^) >>$@
        chmod a-w $@
 
@@ -73,7 +76,7 @@ Basic.mk: Basic.mk.template .dep_segment Makefile
 #
 build.sh.in: build.template Makefile
        rm -f $@
-       sed -e 's@%objs%@$(patsubst %.o,%.$${OBJEXT},$(filter-out remote-%,$(make_OBJECTS)))@g' \
+       sed -e 's@%objs%@$(patsubst %.o,%.$${OBJEXT},$(filter-out src/remote-%,$(make_OBJECTS)))@g' \
            -e 's@%globobjs%@$(patsubst %.c,%.$${OBJEXT},$(filter %.c,$(glob_SRCS)))@g' \
          $< > $@
        chmod a-w+x $@
@@ -84,10 +87,10 @@ build.sh.in: build.template Makefile
 # Automake used to have a --generate-deps flag but it's gone now, so we have
 # to do it ourselves.
 #
-DEP_FILES := $(wildcard $(DEPDIR)/*.Po)
+DEP_FILES := $(wildcard src/$(DEPDIR)/*.Po)
 .dep_segment: Makefile.am maintMakefile $(DEP_FILES)
        rm -f $@
-       (for f in $(DEPDIR)/*.Po; do \
+       (for f in src/$(DEPDIR)/*.Po; do \
           echo ""; \
           echo "# $$f"; \
           sed  -e '/^[^:]*\.[ch] *:/d' \
@@ -157,7 +160,7 @@ move_if_change =  if test -r $(target) && cmp -s $(target).t $(target); then \
 #   ftp://tiger.informatik.hu-berlin.de/pub/po/maint/
 
 po_wget_flags =        --recursive --level=1 --no-directories --no-check-certificate
-po_repo = http://translationproject.org/latest/$(PACKAGE)
+po_repo = https://translationproject.org/latest/$(PACKAGE)
 po_sync = translationproject.org::tp/latest/$(PACKAGE)/
 
 .PHONY: do-po-update po-update
@@ -182,8 +185,8 @@ po-update:
 # with each of the files that belongs to some other package and is
 # regularly updated from the specified URL.
 
-cvs-url = http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~
-git-url = http://git.savannah.gnu.org/cgit
+cvs-url = https://savannah.gnu.org/cgi-bin/viewcvs/~checkout~
+git-url = https://git.savannah.gnu.org/cgit
 target = $(patsubst get-%,%,$@)
 
 config-url = $(git-url)/config.git/plain/$(patsubst get-config/%,%,$@)
@@ -231,22 +234,51 @@ check-alt-config: \
 # Trick GNU make so it doesn't run the submake as a recursive make.
 NR_MAKE = $(MAKE)
 
-# Check builds both with build.sh and with make
+# Check builds both with build.sh and with make and with Basic.mk
 checkcfg.%: distdir
        @echo "Building $@ (output in checkcfg.$*.log)"
-       @exec >'checkcfg.$*.log' 2>&1; \
+       exec >'checkcfg.$*.log' 2>&1; \
           rm -rf $(distdir)/_build \
        && mkdir $(distdir)/_build \
        && cd $(distdir)/_build \
        && echo "Testing configure with $(subst ^,=,$*)" \
        && ../configure --srcdir=.. $(subst ^,=,$*) \
-               $(AM_DISTCHECK_CONFIGURE_FLAGS) $(DISTCHECK_CONFIGURE_FLAGS) \
-               CFLAGS='$(AM_CFLAGS)' \
+               $(AM_DISTCHECK_CONFIGURE_FLAGS) $(DISTCHECK_CONFIGURE_FLAGS)
+       exec >>'checkcfg.$*.log' 2>&1; \
+          cd $(distdir)/_build \
        && ./build.sh \
        && ./make $(AM_MAKEFLAGS) check \
-       && rm -f *.o make \
-       && $(NR_MAKE) $(AM_MAKEFLAGS) \
-       && ./make $(AM_MAKEFLAGS) check
+       && ./make $(AM_MAKEFLAGS) clean
+       exec >>'checkcfg.$*.log' 2>&1; \
+          cd $(distdir)/_build \
+       && $(NR_MAKE) $(AM_MAKEFLAGS) CFLAGS='$(AM_CFLAGS)' \
+       && ./make $(AM_MAKEFLAGS) check \
+       && ./make $(AM_MAKEFLAGS) clean
+
+# Try the different build methods
+checkcfg.basicmk: checkcfg.% : distdir
+       @echo "Building $@ (output in checkcfg.$*.log)"
+       exec >'checkcfg.$*.log' 2>&1; \
+          rm -rf $(distdir)/_build \
+       && mkdir $(distdir)/_build \
+       && cd $(distdir)/_build \
+       && echo "Testing Basic.mk SRCDIR=.." \
+       && ../configure --srcdir=.. \
+               $(AM_DISTCHECK_CONFIGURE_FLAGS) $(DISTCHECK_CONFIGURE_FLAGS)
+       exec >>'checkcfg.$*.log' 2>&1; \
+          cd $(distdir)/_build \
+       && $(NR_MAKE) $(AM_MAKEFLAGS) -f ../Basic.mk CFLAGS='$(AM_CFLAGS)' SRCDIR=.. \
+       && ./make $(AM_MAKEFLAGS) -f ../Basic.mk SRCDIR=.. check \
+       && ./make $(AM_MAKEFLAGS) -f ../Basic.mk SRCDIR=.. clean
+       exec >>'checkcfg.$*.log' 2>&1; \
+          echo "Testing Basic.mk SRCDIR=." \
+       && rm -rf $(distdir)/_build \
+       && cd $(distdir) \
+       && ./configure \
+               $(AM_DISTCHECK_CONFIGURE_FLAGS) $(DISTCHECK_CONFIGURE_FLAGS) \
+       && $(NR_MAKE) $(AM_MAKEFLAGS) -f Basic.mk CFLAGS='$(AM_CFLAGS)' \
+       && ./make $(AM_MAKEFLAGS) -f Basic.mk check \
+       && ./make $(AM_MAKEFLAGS) -f Basic.mk clean
 
 
 ## --------------- ##
@@ -273,11 +305,11 @@ changelog-check:
        fi
 
 # Verify that all source files using _() are listed in po/POTFILES.in.
-# Ignore makeint.h; it defines _().
+# Ignore src/makeint.h; it defines _().
 po-check:
        if test -f po/POTFILES.in; then \
          grep '^[^#]' po/POTFILES.in | sort > $@-1; \
-         $(PERL) -wn -e 'if (/\b_\(/) { $$ARGV eq "./makeint.h" || print "$$ARGV\n" and close ARGV }' `find . -name '*.[ch]'` | sed 's,^\./,,' | sort > $@-2; \
+         $(PERL) -wn -e 'if (/\b_\(/) { $$ARGV eq "./src/makeint.h" || print "$$ARGV\n" and close ARGV }' `find . -name '*.[ch]'` | sed 's,^\./,,' | sort > $@-2; \
          diff -u $@-1 $@-2 || exit 1; \
          rm -f $@-1 $@-2; \
        fi
diff --git a/makefile.vms b/makefile.vms
deleted file mode 100644 (file)
index 6670a0b..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-# -*-Makefile-*- to build GNU make on VMS
-#
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
-# This file is part of GNU Make.
-#
-# GNU Make is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 3 of the License, or (at your option) any later
-# version.
-#
-# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# VMS extensions from GNU Make 3.60 imported by
-#  Klaus Kämpf (kkaempf@rmi.de)
-# Modified for version 3.78.1 by Hartmut.Becker@compaq.com.
-# Modified for version 3.80 by zinser@decus.de
-# Modified for versions 3.81, 3.99.90 by Hartmut Becker
-
-CC = cc
-CP = copy
-
-%.obj: %.c
-       $(CC) $(CFLAGS)/obj=$@ $<
-#
-#      Makefile for GNU Make
-#
-
-ifeq ($(CC),cc)
-cinclude = /nested=none/include=([],[.glob])
-cprefix = /prefix=(all,except=(glob,globfree))
-cwarn = /standard=relaxed/warn=(disable=questcompare)
-CFLAGS = $(defines) $(cinclude)$(cprefix)$(cwarn)
-else
-CFLAGS = $(defines) $(cinclude)
-endif
-#LDFLAGS = /deb
-LDFLAGS =
-
-ifeq ($(CC),cc)
-defines = /define=("unlink=remove","HAVE_CONFIG_H","VMS","allocated_variable_expand_for_file=alloc_var_expand_for_file")
-else
-ifeq ($(ARCH),VAX)
-defines = /define=("HAVE_CONFIG_H","GCC_IS_NATIVE","VAX")
-else
-defines = /define=("HAVE_CONFIG_H","GCC_IS_NATIVE")
-endif
-endif
-
-LOAD_AVG = /define="NO_LDAV"
-
-# If you don't want archive support, comment these out.
-ARCHIVES = ,ar.obj,arscan.obj
-ARCHIVES_SRC = ar.c arscan.c
-
-# If your system needs extra libraries loaded in, define them here.
-# System V probably need -lPW for alloca.
-# if on vax, uncomment the following line
-#LOADLIBES = ,c.opt/opt
-ifeq ($(CC),cc)
-#LOADLIBES =,sys$$library:vaxcrtl.olb/lib
-CRT0 =
-else
-LOADLIBES =,gnu_cc_library:libgcc.olb/lib
-endif
-
-# If your system doesn't have alloca, or the one provided is bad,
-# get it from the Emacs distribution and define these.
-#ALLOCA = ,alloca.obj
-#ALLOCASRC = alloca.c
-
-# If there are remote execution facilities defined,
-# enable them with switches here (see remote-*.c).
-REMOTE =
-
-# Any extra object files your system needs.
-extras = ,signame.obj,remote-stub.obj,vmsfunctions.obj,vmsify.obj
-#,directory.obj
-# as an alternative:
-glob = ,[.glob]glob.obj,[.glob]fnmatch.obj
-getopt = ,getopt.obj,getopt1.obj
-# Directory to install 'make' in.
-bindir = []
-# Directory to install the man page in.
-mandir = []
-# Number to put on the man page filename.
-manext = 1
-
-guile = ,guile.obj
-
-objs = commands.obj,job.obj,output.obj,dir.obj,file.obj,misc.obj,hash.obj,\
-       load.obj,main.obj,read.obj,remake.obj,rule.obj,implicit.obj,\
-       default.obj,variable.obj,expand.obj,function.obj,strcache.obj,\
-       vpath.obj,version.obj,vms_progname.obj,vms_exit.obj,\
-       vms_export_symbol.obj$(guile)$(ARCHIVES)$(extras)$(getopt)$(glob)
-
-srcs = commands.c job.c output.c dir.c file.c misc.c guile.c hash.c \
-       load.c main.c read.c remake.c rule.c implicit.c \
-       default.c variable.c expand.c function.c strcache.c \
-       vpath.c version.c vmsfunctions.c vmsify.c vms_progname.c vms_exit.c \
-       vms_export_symbol.c $(ARCHIVES_SRC) $(ALLOCASRC) \
-       commands.h dep.h filedef.h job.h output.h makeint.h rule.h variable.h
-
-
-.PHONY: all doc
-all: config.h make.exe
-
-doc: make.info make.dvi
-
-
-make.exe: $(objs)
-       $(LD)$(LDFLAGS)/exe=$@ $^$(LOADLIBES)$(CRT0)
-
-.PHONY: clean realclean
-clean:
-       -purge [...]
-       -$(RM) make.exe;,*.obj;
-       -$(RM) [.glob]*.obj;
-
-ar.obj: ar.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h dep.h \
-     [.glob]fnmatch.h
-arscan.obj: arscan.c makeint.h config.h gnumake.h gettext.h
-commands.obj: commands.c makeint.h config.h gnumake.h gettext.h filedef.h \
-     hash.h dep.h variable.h job.h output.h commands.h
-default.obj: default.c makeint.h config.h gnumake.h gettext.h filedef.h \
-     hash.h variable.h rule.h dep.h job.h output.h commands.h
-dir.obj: dir.c makeint.h config.h gnumake.h gettext.h hash.h filedef.h \
-     dep.h [.glob]glob.h
-expand.obj: expand.c makeint.h config.h gnumake.h gettext.h filedef.h \
-     hash.h job.h output.h commands.h variable.h rule.h
-file.obj: file.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
-     dep.h job.h output.h commands.h variable.h debug.h
-[.glob]fnmatch.obj: [.glob]fnmatch.c config.h [.glob]fnmatch.h
-function.obj: function.c makeint.h config.h gnumake.h gettext.h filedef.h \
-     hash.h variable.h dep.h job.h output.h commands.h debug.h
-getopt.obj: getopt.c config.h gettext.h getopt.h
-getopt1.obj: getopt1.c config.h getopt.h
-[.glob]glob.obj: [.glob]glob.c config.h [.glob]fnmatch.h [.glob]glob.h
-guile.obj: guile.c makeint.h config.h gnumake.h gettext.h
-hash.obj: hash.c makeint.h config.h gnumake.h gettext.h hash.h
-implicit.obj: implicit.c makeint.h config.h gnumake.h gettext.h filedef.h \
-     hash.h rule.h dep.h debug.h variable.h job.h output.h commands.h
-job.obj: job.c makeint.h config.h gnumake.h gettext.h job.h output.h debug.h \
-     filedef.h hash.h commands.h variable.h debug.h vmsjobs.c
-load.obj: load.c makeint.h config.h gnumake.h gettext.h
-main.obj: main.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
-     dep.h variable.h job.h output.h commands.h rule.h debug.h getopt.h
-misc.obj: misc.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
-     dep.h debug.h
-output.obj: output.c makeint.h config.h gnumake.h gettext.h job.h output.h
-read.obj: read.c makeint.h config.h gnumake.h gettext.h [.glob]glob.h \
-     filedef.h hash.h dep.h job.h output.h commands.h variable.h rule.h \
-     debug.h
-remake.obj: remake.c makeint.h config.h gnumake.h gettext.h filedef.h \
-     hash.h job.h output.h commands.h dep.h variable.h debug.h
-remote-stub.obj: remote-stub.c makeint.h config.h gnumake.h gettext.h \
-     filedef.h hash.h job.h output.h commands.h
-rule.obj: rule.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
-     dep.h job.h output.h commands.h variable.h rule.h
-signame.obj: signame.c makeint.h config.h gnumake.h gettext.h
-strcache.obj: strcache.c makeint.h config.h gnumake.h gettext.h hash.h
-variable.obj: variable.c makeint.h config.h gnumake.h gettext.h filedef.h \
-     hash.h dep.h job.h output.h commands.h variable.h rule.h
-version.obj: version.c config.h
-vmsfunctions.obj: vmsfunctions.c makeint.h config.h gnumake.h gettext.h \
-     debug.h job.h output.h vmsdir.h
-vmsify.obj: vmsify.c
-vpath.obj: vpath.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
-     variable.h
-vms_progname.obj: vms_progname.c
-vms_exit.obj: vms_exit.c
-vms_export_symbol.obj: vms_export_symbol.c
-
-config.h: config.h-vms
-       $(CP) $< $@
index fe2a1f646edd4acf16a6abb837aa0104bec86786..180cc7847840cdf14a41d297f6d85f152fe634a3 100644 (file)
 
 CC = sc
 LD = $(CC) Link
+
 RM = delete
 MKDIR = makedir
+CP = copy
+CP.cmd = $(CP) $< To $@
 
 CPPFLAGS =
 CFLAGS =
 LDFLAGS =
 
-prog_SOURCES += alloca.c getloadavg.c $(glob_SOURCES) $(amiga_SOURCES)
+prog_SOURCES += $(alloca_SOURCES) $(loadavg_SOURCES) $(glob_SOURCES) $(amiga_SOURCES)
 
-extra_CPPFLAGS = IDir "" IDir $(SRCDIR)/glob
+extra_CPPFLAGS = IDir $(OUTDIR)src IDir $(SRCDIR)/src IDir $(SRCDIR)/glob
 
 C_SOURCE =
 OUTPUT_OPTION =
@@ -37,5 +40,5 @@ LDFLAGS = From LIB:cres.o
 LDLIBS = Lib LIB:sc.lib LIB:amiga.lib
 LINK_OUTPUT = To $@
 
-$(OUTDIR)/config.h: $(SRCDIR)/config.ami
-       copy $< To $@
+$(OUTDIR)src/config.h: $(SRCDIR)/src/config.ami
+       $(CP.cmd)
diff --git a/mk/Posix.mk.in b/mk/Posix.mk.in
new file mode 100644 (file)
index 0000000..45951f2
--- /dev/null
@@ -0,0 +1,27 @@
+# GNU -*-Makefile-*- to build GNU make on POSIX systems
+#
+# POSIX overrides for use with Basic.mk.
+#
+# Copyright (C) 2017 Free Software Foundation, Inc.
+# This file is part of GNU Make.
+#
+# GNU Make is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3 of the License, or (at your option) any later
+# version.
+#
+# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Very little is needed here since the default Basic.mk assumes POSIX
+
+prog_SOURCES += $(posix_SOURCES)
+
+extra_CPPFLAGS += @GUILE_CFLAGS@ @GLOBINC@
+extra_LDFLAGS += @AM_LDFLAGS@
+LDLIBS += @GUILE_LIBS@ @LIBOBJS@ @GETLOADAVG_LIBS@ @GLOBLIB@ @ALLOCA@ @LIBINTL@ @LIBS@
diff --git a/mk/VMS.mk b/mk/VMS.mk
new file mode 100644 (file)
index 0000000..a436239
--- /dev/null
+++ b/mk/VMS.mk
@@ -0,0 +1,91 @@
+# GNU -*-Makefile-*- to build GNU make on VMS
+#
+# VMS overrides for use with Basic.mk.
+#
+# Copyright (C) 2017 Free Software Foundation, Inc.
+# This file is part of GNU Make.
+#
+# GNU Make is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3 of the License, or (at your option) any later
+# version.
+#
+# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program.  If not, see <http://www.gnu.org/licenses/>.
+
+src = [.src]
+glob = [.glob]
+SRCDIR = []
+
+OBJEXT = .obj
+EXEEXT = .exe
+
+CP = copy
+MKDIR = create/dir
+RM = delete
+
+e =
+s = $e $e
+c = ,
+
+defs = HAVE_CONFIG_H
+
+ifeq ($(CC),cc)
+defs += VMS unlink=remove allocated_variable_expand_for_file=alloc_var_expand_for_file
+else
+defs += GCC_IS_NATIVE
+ifeq ($(ARCH),VAX)
+defs += VAX
+endif
+endif
+
+extra_CPPFLAGS = /define=($(subst $s,$c,$(patsubst %,"%",$(defs))))
+
+cinclude = /nested=none/include=($(src),$(glob))
+ifeq ($(CC),cc)
+cprefix = /prefix=(all,except=(glob,globfree))
+cwarn = /standard=relaxed/warn=(disable=questcompare)
+endif
+
+extra_CFLAGS = $(cinclude)$(cprefix)$(cwarn)
+
+#extra_LDFLAGS = /deb
+extra_LDFLAGS =
+
+# If your system needs extra libraries loaded in, define them here.
+# System V probably need -lPW for alloca.
+# if on vax, uncomment the following line
+#LDLIBS = ,c.opt/opt
+ifeq ($(CC),cc)
+#LDLIBS =,sys$$library:vaxcrtl.olb/lib
+else
+LDLIBS =,gnu_cc_library:libgcc.olb/lib
+endif
+
+# If your system doesn't have alloca, or the one provided is bad,
+# uncomment this
+#ALLOCA = $(alloca_SOURCES)
+
+prog_SOURCES += $(ALLOCA) $(glob_SOURCES) $(vms_SOURCES)
+
+COMPILE.cmd = $(CC) $(extra_CFLAGS)$(CFLAGS)/obj=$@ $(extra_CPPFLAGS)$(CPPFLAGS) $<
+
+LINK.cmd = $(LD)$(extra_LDFLAGS)$(LDFLAGS)/exe=$@ $(subst $s,$c,$^)$(LDLIBS)
+
+# Don't know how to do this
+CHECK.cmd =
+
+define RM.cmd
+       -purge [...]
+       -$(RM) $(PROG);
+       -$(RM) $(src)*.$(OBJEXT);
+endef
+
+
+$(OUTDIR)$(src)config.h: $(SRCDIR)$(src)config.h.W32
+       $(CP.cmd)
index 8848827b986a9cdc6ee1b890558b9f71d1c062ac..fb643174bc9bcfa5379a38b4d5565d338158ca21 100644 (file)
@@ -1,6 +1,6 @@
 # GNU -*-Makefile-*- to build GNU make on Windows
 #
-# Windows overrides for use with Makebase.mk.
+# Windows overrides for use with Basic.mk.
 #
 # Copyright (C) 2017 Free Software Foundation, Inc.
 # This file is part of GNU Make.
@@ -25,7 +25,7 @@ TARGET_TYPE = release
 TOOLCHAIN = msvc
 
 
-prog_SOURCES += getloadavg.c $(glob_SOURCES) $(w32_SOURCES)
+prog_SOURCES += $(loadavg_SOURCES) $(glob_SOURCES) $(w32_SOURCES)
 
 w32_LIBS = kernel32 user32 gdi32 winspool comdlg32 advapi32 shell32 ole32 \
           oleaut32 uuid odbc32 odbccp32
@@ -39,7 +39,7 @@ msvc_CC = cl.exe
 msvc_LD = link.exe
 
 msvc_CPPFLAGS = /DHAVE_CONFIG_H /DWINDOWS32 /DWIN32 /D_CONSOLE
-msvc_CPPFLAGS += /I$(OUTDIR) /I$(SRCDIR) /I$(SRCDIR)/glob /I$(SRCDIR)/w32/include
+msvc_CPPFLAGS += /I$(OUTDIR)src /I$(SRCDIR)/src /I$(SRCDIR)/glob /I$(SRCDIR)/src/w32/include
 
 msvc_CFLAGS = /nologo /MT /W4 /EHsc
 msvc_CFLAGS += /FR$(OUTDIR) /Fp$(BASE_PROG).pch /Fd$(BASE_PROG).pdb
@@ -52,11 +52,11 @@ msvc_C_SOURCE = /c
 msvc_OUTPUT_OPTION = /Fo$@
 msvc_LINK_OUTPUT = /OUT:$@
 
-release_msvc_OUTDIR = ./WinRel
+release_msvc_OUTDIR = ./WinRel/
 release_msvc_CPPFLAGS = /D NDEBUG
 release_msvc_CFLAGS = /O2
 
-debug_msvc_OUTDIR = ./WinDebug
+debug_msvc_OUTDIR = ./WinDebug/
 debug_msvc_CPPFLAGS = /D _DEBUG
 debug_msvc_CFLAGS = /Zi /Od
 debug_msvc_LDFLAGS = /DEBUG
@@ -65,10 +65,10 @@ debug_msvc_LDFLAGS = /DEBUG
 gcc_CC = gcc
 gcc_LD = $(gcc_CC)
 
-release_gcc_OUTDIR = ./GccRel
-debug_gcc_OUTDIR = ./GccDebug
+release_gcc_OUTDIR = ./GccRel/
+debug_gcc_OUTDIR = ./GccDebug/
 
-gcc_CPPFLAGS = -DHAVE_CONFIG_H -I$(OBJDIR) -I$(SRCDIR) -I$(SRCDIR)/glob -I$(SRCDIR)/w32/include
+gcc_CPPFLAGS = -DHAVE_CONFIG_H -I$(OUTDIR)src -I$(SRCDIR)/src -I$(SRCDIR)/glob -I$(SRCDIR)/src/w32/include
 gcc_CFLAGS = -mthreads -Wall -std=gnu99 -gdwarf-2 -g3
 gcc_LDFLAGS = -mthreads -gdwarf-2 -g3
 gcc_LDLIBS = $(addprefix -l,$(w32_libs))
@@ -86,8 +86,14 @@ LINK.cmd = $(LD) $(extra_LDFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) $(LINK_
 
 CHECK.cmd = cmd /c cd tests \& .\run_make_tests.bat -make ../$(PROG)
 
-MKDIR.cmd = cmd /c mkdir $(subst /,\\,$@)
-RM.cmd = cmd /c del /F /Q $(subst /,\\,$(OBJECTS) $(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 /,\\,$< $@)
 
 CC = $($(TOOLCHAIN)_CC)
 LD = $($(TOOLCHAIN)_LD)
@@ -104,7 +110,7 @@ EXEEXT      = .exe
 _CUSTOM = $($(TOOLCHAIN)_$1) $($(TARGET_TYPE)_$1) $($(TARGET_TYPE)_$(TOOLCHAIN)_$1)
 
 # I'm not sure why this builds gnumake rather than make...?
-PROG = $(OUTDIR)/gnumake$(EXEEXT)
+PROG = $(OUTDIR)gnumake$(EXEEXT)
 BASE_PROG = $(basename $(PROG))
 
 extra_CPPFLAGS = $(call _CUSTOM,CPPFLAGS)
@@ -112,5 +118,5 @@ extra_CFLAGS = $(call _CUSTOM,CFLAGS)
 extra_LDFLAGS = $(call _CUSTOM,LDFLAGS)
 LDLIBS = $(call _CUSTOM,LDLIBS)
 
-$(OUTDIR)/config.h: $(SRCDIR)/config.h.W32
-       cmd /c copy /Y $(subst /,\\,$< $@)
+$(OUTDIR)src/config.h: $(SRCDIR)/src/config.h.W32
+       $(CP.cmd)
index a9dd25015a284f14a025fb97c608a10a4ca239bc..7d617938f337dfa9866a26f4aff8a88dfeb77ae7 100644 (file)
@@ -1,6 +1,6 @@
 # GNU -*-Makefile-*- to build GNU make on MS-DOS with DJGPP
 #
-# MS-DOS overrides for use with Makebase.mk.
+# MS-DOS overrides for use with Basic.mk.
 #
 # Copyright (C) 2017 Free Software Foundation, Inc.
 # This file is part of GNU Make.
@@ -23,12 +23,22 @@ EXEEXT = .exe
 
 CC = gcc
 
-prog_SOURCES += getloadavg.c $(glob_SOURCES)
+prog_SOURCES += $(loadavg_SOURCES) $(glob_SOURCES)
 
-extra_CPPFLAGS += -I$(SRCDIR)/glob -DINCLUDEDIR=\"c:/djgpp/include\" -DLIBDIR=\"c:/djgpp/lib\"
+INCLUDEDIR = c:/djgpp/include
+LIBDIR = c:/djgpp/lib
+LOCALEDIR = c:/djgpp/share
 
-MKDIR.cmd = command.com /c mkdir $(subst /,\\,$@)
-RM.cmd = command.com /c del /F /Q $(subst /,\\,$(OBJECTS) $(PROG))
+extra_CPPFLAGS = -I$(SRCDIR)/glob
 
-$(OUTDIR)/config.h: $(SRCDIR)/configh.dos
-       command.com /c copy /Y $(subst /,\\,$< $@)
+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 /,\\,$< $@)
+
+$(OUTDIR)src/config.h: $(SRCDIR)/src/configh.dos
+       $(CP.cmd)
index 214fdf1fecc17beba6d047ac51e389447ec0358b..87f6fcd940f222777244caf117ee03684501f28f 100644 (file)
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
-ar.c
-arscan.c
-commands.c
-dir.c
-expand.c
-file.c
-function.c
-getopt.c
-guile.c
-hash.c
-implicit.c
-job.c
-load.c
-main.c
-misc.c
-output.c
-output.h
-posixos.c
-read.c
-remake.c
-remote-cstms.c
-rule.c
-signame.c
-strcache.c
-variable.c
-variable.h
-vmsfunctions.c
-vmsjobs.c
-vpath.c
-w32/w32os.c
+src/ar.c
+src/arscan.c
+src/commands.c
+src/dir.c
+src/expand.c
+src/file.c
+src/function.c
+src/getopt.c
+src/guile.c
+src/hash.c
+src/implicit.c
+src/job.c
+src/load.c
+src/main.c
+src/misc.c
+src/output.c
+src/output.h
+src/posixos.c
+src/read.c
+src/remake.c
+src/remote-cstms.c
+src/rule.c
+src/signame.c
+src/strcache.c
+src/variable.c
+src/variable.h
+src/vmsfunctions.c
+src/vmsjobs.c
+src/vpath.c
+src/w32/w32os.c
diff --git a/prepare_w32.bat b/prepare_w32.bat
deleted file mode 100644 (file)
index 7591e27..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off\r
-@echo Windows32 SCM build preparation of config.h.W32 and NMakefile.\r
-if not exist config.h.W32 copy config.h.W32.template config.h.W32\r
-if not exist config.h copy config.h.W32 config.h\r
-if not exist NMakefile copy NMakefile.template NMakefile\r
-@echo Preparation complete.  Run build_w32.bat to compile and link.\r
similarity index 100%
rename from alloca.c
rename to src/alloca.c
similarity index 100%
rename from amiga.c
rename to src/amiga.c
similarity index 100%
rename from amiga.h
rename to src/amiga.h
diff --git a/ar.c b/src/ar.c
similarity index 100%
rename from ar.c
rename to src/ar.c
similarity index 100%
rename from arscan.c
rename to src/arscan.c
similarity index 100%
rename from commands.c
rename to src/commands.c
similarity index 100%
rename from commands.h
rename to src/commands.h
similarity index 100%
rename from config.ami.template
rename to src/config.ami.template
similarity index 100%
rename from debug.h
rename to src/debug.h
similarity index 100%
rename from default.c
rename to src/default.c
diff --git a/dep.h b/src/dep.h
similarity index 100%
rename from dep.h
rename to src/dep.h
diff --git a/dir.c b/src/dir.c
similarity index 100%
rename from dir.c
rename to src/dir.c
similarity index 100%
rename from expand.c
rename to src/expand.c
similarity index 100%
rename from file.c
rename to src/file.c
similarity index 100%
rename from filedef.h
rename to src/filedef.h
similarity index 100%
rename from function.c
rename to src/function.c
similarity index 100%
rename from getloadavg.c
rename to src/getloadavg.c
similarity index 100%
rename from getopt.c
rename to src/getopt.c
similarity index 100%
rename from getopt.h
rename to src/getopt.h
similarity index 100%
rename from getopt1.c
rename to src/getopt1.c
similarity index 100%
rename from gettext.h
rename to src/gettext.h
similarity index 100%
rename from gmk-default.scm
rename to src/gmk-default.scm
similarity index 100%
rename from gnumake.h
rename to src/gnumake.h
similarity index 100%
rename from guile.c
rename to src/guile.c
similarity index 100%
rename from hash.c
rename to src/hash.c
similarity index 100%
rename from hash.h
rename to src/hash.h
similarity index 100%
rename from implicit.c
rename to src/implicit.c
diff --git a/job.c b/src/job.c
similarity index 100%
rename from job.c
rename to src/job.c
diff --git a/job.h b/src/job.h
similarity index 100%
rename from job.h
rename to src/job.h
similarity index 100%
rename from load.c
rename to src/load.c
similarity index 100%
rename from loadapi.c
rename to src/loadapi.c
similarity index 100%
rename from main.c
rename to src/main.c
similarity index 100%
rename from makeint.h
rename to src/makeint.h
similarity index 100%
rename from misc.c
rename to src/misc.c
diff --git a/os.h b/src/os.h
similarity index 100%
rename from os.h
rename to src/os.h
similarity index 100%
rename from output.c
rename to src/output.c
similarity index 100%
rename from output.h
rename to src/output.h
similarity index 100%
rename from posixos.c
rename to src/posixos.c
similarity index 100%
rename from read.c
rename to src/read.c
similarity index 100%
rename from remake.c
rename to src/remake.c
similarity index 100%
rename from remote-cstms.c
rename to src/remote-cstms.c
similarity index 100%
rename from remote-stub.c
rename to src/remote-stub.c
similarity index 100%
rename from rule.c
rename to src/rule.c
similarity index 100%
rename from rule.h
rename to src/rule.h
similarity index 100%
rename from signame.c
rename to src/signame.c
similarity index 100%
rename from strcache.c
rename to src/strcache.c
similarity index 100%
rename from variable.c
rename to src/variable.c
similarity index 100%
rename from variable.h
rename to src/variable.h
similarity index 100%
rename from version.c
rename to src/version.c
similarity index 100%
rename from vms_exit.c
rename to src/vms_exit.c
similarity index 100%
rename from vms_export_symbol.c
rename to src/vms_export_symbol.c
similarity index 100%
rename from vms_progname.c
rename to src/vms_progname.c
similarity index 100%
rename from vmsdir.h
rename to src/vmsdir.h
similarity index 100%
rename from vmsfunctions.c
rename to src/vmsfunctions.c
similarity index 100%
rename from vmsify.c
rename to src/vmsify.c
similarity index 100%
rename from vmsjobs.c
rename to src/vmsjobs.c
similarity index 100%
rename from vpath.c
rename to src/vpath.c
similarity index 100%
rename from w32/compat/dirent.c
rename to src/w32/compat/dirent.c
similarity index 100%
rename from w32/include/dlfcn.h
rename to src/w32/include/dlfcn.h
similarity index 100%
rename from w32/pathstuff.c
rename to src/w32/pathstuff.c
similarity index 100%
rename from w32/subproc/misc.c
rename to src/w32/subproc/misc.c
similarity index 100%
rename from w32/subproc/proc.h
rename to src/w32/subproc/proc.h
similarity index 100%
rename from w32/w32os.c
rename to src/w32/w32os.c
index de9604759a7b19711ad5120098b51b6ff9ac21b7..cd8a643ca7957d58897c2ffc74debbdeafb48ee9 100644 (file)
@@ -96,7 +96,7 @@ sub valid_option
 
    if ($option =~ /^-srcdir$/i) {
        $srcdir = shift @argv;
-       if (! -f "$srcdir/gnumake.h") {
+       if (! -f "$srcdir/src/gnumake.h") {
            print "$option $srcdir: Not a valid GNU make source directory.\n";
            exit 0;
        }
@@ -457,7 +457,7 @@ sub set_more_defaults
    if (! $srcdir) {
        $make_path =~ /^(.*$pathsep)?/;
        my $d = $1 || '../';
-       -f "${d}gnumake.h" and $srcdir = $d;
+       -f "${d}/src/gnumake.h" and $srcdir = $d;
    }
 
    # Not with the make program, so see if we can get it out of the makefile
@@ -466,7 +466,7 @@ sub set_more_defaults
        $_ = <MF>;
        close(MF);
        /^abs_srcdir\s*=\s*(.*?)\s*$/m;
-       -f "$1/gnumake.h" and $srcdir = $1;
+       -f "$1/src/gnumake.h" and $srcdir = $1;
    }
 
    # Get Purify log info--if any.
index dcc1cdfb3f32ed613589aab7fc235aebf14cb0c9..56f80e24cb93602b7781bdea4bde48c59918e174 100644 (file)
@@ -46,7 +46,7 @@ close($F) or die "close: testload.c: $!\n";
 
 # Make sure we can compile
 
-my $sobuild = "$CONFIG_FLAGS{CC} ".($srcdir? "-I$srcdir":'')." $CONFIG_FLAGS{CPPFLAGS} $CONFIG_FLAGS{CFLAGS} -shared -fPIC $CONFIG_FLAGS{LDFLAGS} -o testload.so testload.c";
+my $sobuild = "$CONFIG_FLAGS{CC} ".($srcdir? "-I$srcdir/src":'')." $CONFIG_FLAGS{CPPFLAGS} $CONFIG_FLAGS{CFLAGS} -shared -fPIC $CONFIG_FLAGS{LDFLAGS} -o testload.so testload.c";
 
 my $clog = `$sobuild 2>&1`;
 if ($? != 0) {
index acc3c780326bee0e944d63a1a6f85efaa59b3c5e..c8895572d50a4d096dad8aea12d9dd713454b540 100644 (file)
@@ -80,7 +80,7 @@ close($F) or die "close: testapi.c: $!\n";
 
 # Make sure we can compile
 
-my $sobuild = "$CONFIG_FLAGS{CC} ".($srcdir? "-I$srcdir":'')." $CONFIG_FLAGS{CPPFLAGS} $CONFIG_FLAGS{CFLAGS} -shared -fPIC $CONFIG_FLAGS{LDFLAGS} -o testapi.so testapi.c";
+my $sobuild = "$CONFIG_FLAGS{CC} ".($srcdir? "-I$srcdir/src":'')." $CONFIG_FLAGS{CPPFLAGS} $CONFIG_FLAGS{CFLAGS} -shared -fPIC $CONFIG_FLAGS{LDFLAGS} -o testapi.so testapi.c";
 
 my $clog = `$sobuild 2>&1`;
 if ($? != 0) {