diff --git a/.gitignore b/.gitignore index 89036d48..596f33d0 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,8 @@ config.log config.status configure stamp-h1 +.dirstamp +mk/Posix.mk # Build artifacts .deps 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 $(. -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 a452faed..aa011914 100644 --- 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 +* 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. diff --git a/README.DOS.template b/README.DOS.template index ae15bd7c..5e75f9fa 100644 --- a/README.DOS.template +++ b/README.DOS.template @@ -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: diff --git a/SCOPTIONS b/SCOPTIONS index 3d69fb42..758f82f9 100644 --- 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 diff --git a/build.template b/build.template index 4b146933..b16d397f 100644 --- a/build.template +++ b/build.template @@ -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. diff --git a/build_w32.bat b/build_w32.bat index 73afa5d3..12a1d932 100755 --- a/build_w32.bat +++ b/build_w32.bat @@ -24,6 +24,7 @@ if "%1" == "--help" goto Usage set MAKE=gnumake set GUILE=Y set COMPILER=cl.exe +set O=obj set ARCH=x64 set DEBUG=N @@ -53,6 +54,7 @@ goto ParseSW :SetCC set COMPILER=gcc +set O=o echo Building with GCC shift goto ParseSW @@ -146,58 +148,61 @@ if exist %OUTDIR%\nul rmdir /S /Q %OUTDIR% :: Recreate it mkdir %OUTDIR% +mkdir %OUTDIR%\src +mkdir %OUTDIR%\src\w32 +mkdir %OUTDIR%\src\w32\compat +mkdir %OUTDIR%\src\w32\subproc mkdir %OUTDIR%\glob -mkdir %OUTDIR%\w32 -mkdir %OUTDIR%\w32\compat -mkdir %OUTDIR%\w32\subproc if "%GUILE%" == "Y" call :ChkGuile echo. echo Compiling %OUTDIR% version -if exist config.h.W32.template call :ConfigSCM -copy config.h.W32 %OUTDIR%\config.h +if exist src\config.h.W32.template call :ConfigSCM +copy src\config.h.W32 %OUTDIR%\src\config.h -call :Compile ar -call :Compile arscan -call :Compile commands -call :Compile default -call :Compile dir -call :Compile expand -call :Compile file -call :Compile function -call :Compile getloadavg -call :Compile getopt -call :Compile getopt1 +if exist %OUTDIR%\link.sc del %OUTDIR%\link.sc + +call :Compile src\ar +call :Compile src\arscan +call :Compile src\commands +call :Compile src\default +call :Compile src\dir +call :Compile src\expand +call :Compile src\file +call :Compile src\function +call :Compile src\getloadavg +call :Compile src\getopt +call :Compile src\getopt1 +call :Compile src\guile GUILE +call :Compile src\hash +call :Compile src\implicit +call :Compile src\job +call :Compile src\load +call :Compile src\loadapi +call :Compile src\main GUILE +call :Compile src\misc +call :Compile src\output +call :Compile src\read +call :Compile src\remake +call :Compile src\remote-stub +call :Compile src\rule +call :Compile src\signame +call :Compile src\strcache +call :Compile src\variable +call :Compile src\version +call :Compile src\vpath +call :Compile src\w32\pathstuff +call :Compile src\w32\w32os +call :Compile src\w32\compat\posixfcn +call :Compile src\w32\subproc\misc +call :Compile src\w32\subproc\sub_proc +call :Compile src\w32\subproc\w32err call :Compile glob\fnmatch call :Compile glob\glob -call :Compile guile GUILE -call :Compile hash -call :Compile implicit -call :Compile job -call :Compile load -call :Compile loadapi -call :Compile main GUILE -call :Compile misc -call :Compile output -call :Compile read -call :Compile remake -call :Compile remote-stub -call :Compile rule -call :Compile signame -call :Compile strcache -call :Compile variable -call :Compile version -call :Compile vpath -call :Compile w32\pathstuff -call :Compile w32\w32os -call :Compile w32\compat\posixfcn -call :Compile w32\subproc\misc -call :Compile w32\subproc\sub_proc -call :Compile w32\subproc\w32err -if not "%COMPILER%" == "gcc" call :Compile w32\compat\dirent +if not "%COMPILER%" == "gcc" call :Compile src\w32\compat\dirent call :Link @@ -208,21 +213,21 @@ if exist %OUTDIR%\%MAKE%.exe copy /Y Basic.mk Makefile goto :EOF :Compile +echo %OUTDIR%\%1.%O% >>%OUTDIR%\link.sc set EXTRAS= if "%2" == "GUILE" set "EXTRAS=%GUILECFLAGS%" if "%COMPILER%" == "gcc" goto GccCompile :: MSVC Compile echo on -%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 +%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 @echo off -echo %OUTDIR%\%1.obj >>%OUTDIR%\link.sc goto :EOF :GccCompile :: GCC Compile echo on -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 +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 @echo off goto :EOF @@ -240,18 +245,19 @@ goto :EOF :GccLink :: GCC Link echo on -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 +echo %GUILELIBS% -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 >>%OUTDIR%\link.sc +gcc -mthreads -gdwarf-2 -g3 %OPTS% -o %OUTDIR%\%MAKE%.exe @%OUTDIR%\link.sc -Wl,--out-implib=%OUTDIR%\libgnumake-1.dll.a @echo off goto :EOF :ConfigSCM echo Generating config from SCM templates -sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.ac > %OUTDIR%\config.h.W32.sed -echo s,%%PACKAGE%%,make,g >> %OUTDIR%\config.h.W32.sed -sed -f %OUTDIR%\config.h.W32.sed config.h.W32.template > config.h.W32 -echo static const char *const GUILE_module_defn = ^" \> gmk-default.h -sed -e "s/;.*//" -e "/^[ \t]*$/d" -e "s/\"/\\\\\"/g" -e "s/$/ \\\/" gmk-default.scm >> gmk-default.h -echo ^";>> gmk-default.h +sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.ac > %OUTDIR%\src\config.h.W32.sed +echo s,%%PACKAGE%%,make,g >> %OUTDIR%\src\config.h.W32.sed +sed -f %OUTDIR%\src\config.h.W32.sed src\config.h.W32.template > src\config.h.W32 +echo static const char *const GUILE_module_defn = ^" \ > src\gmk-default.h +sed -e "s/;.*//" -e "/^[ \t]*$/d" -e "s/\"/\\\\\"/g" -e "s/$/ \\\/" src\gmk-default.scm >> src\gmk-default.h +echo ^";>> src\gmk-default.h goto :EOF :ChkGuile @@ -318,6 +324,7 @@ set GUILELIBS= set LINKOPTS= set MAKE= set NOGUILE= +set O= set OPTS= set OUTDIR= set PKGMSC= diff --git a/builddos.bat b/builddos.bat index b96318d5..0902b0d9 100644 --- a/builddos.bat +++ b/builddos.bat @@ -31,39 +31,39 @@ if not "%XSRC%"=="%1" goto SmallEnv :SrcDone -copy /Y %XSRC%/configh.dos ./config.h +copy /Y %XSRC%/src/configh.dos ./src/config.h if not exist glob mkdir glob rem Echo ON so they will see what is going on. @echo on -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/commands.c -o commands.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/output.c -o output.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/job.c -o job.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/dir.c -o dir.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/file.c -o file.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/misc.c -o misc.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/main.c -o main.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -DINCLUDEDIR=\"c:/djgpp/include\" -O2 -g %XSRC%/read.c -o read.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -DLIBDIR=\"c:/djgpp/lib\" -O2 -g %XSRC%/remake.c -o remake.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/rule.c -o rule.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/implicit.c -o implicit.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/default.c -o default.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/variable.c -o variable.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/expand.c -o expand.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/function.c -o function.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/vpath.c -o vpath.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/hash.c -o hash.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/strcache.c -o strcache.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/version.c -o version.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/ar.c -o ar.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/arscan.c -o arscan.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/signame.c -o signame.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/remote-stub.c -o remote-stub.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/getopt.c -o getopt.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/getopt1.c -o getopt1.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/glob.c -o glob/glob.o -gcc -c -I%XSRC% -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/fnmatch.c -o glob/fnmatch.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/commands.c -o commands.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/output.c -o output.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/job.c -o job.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/dir.c -o dir.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/file.c -o file.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/misc.c -o misc.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/main.c -o main.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -DINCLUDEDIR=\"c:/djgpp/include\" -O2 -g %XSRC%/src/read.c -o read.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -DLIBDIR=\"c:/djgpp/lib\" -O2 -g %XSRC%/src/remake.c -o remake.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/rule.c -o rule.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/implicit.c -o implicit.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/default.c -o default.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/variable.c -o variable.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/expand.c -o expand.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/function.c -o function.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/vpath.c -o vpath.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/hash.c -o hash.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/strcache.c -o strcache.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/version.c -o version.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/ar.c -o ar.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/arscan.c -o arscan.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/signame.c -o signame.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/remote-stub.c -o remote-stub.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/getopt.c -o getopt.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/src/getopt1.c -o getopt1.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/glob.c -o glob/glob.o +gcc -c -I%XSRC%/src -I%XSRC%/glob -DHAVE_CONFIG_H -O2 -g %XSRC%/glob/fnmatch.c -o glob/fnmatch.o @echo off echo commands.o > respf.$$$ for %%f in (job output dir file misc main read remake rule implicit default variable) do echo %%f.o >> respf.$$$ diff --git a/acinclude.m4 b/config/acinclude.m4 similarity index 100% rename from acinclude.m4 rename to config/acinclude.m4 diff --git a/configure.ac b/configure.ac index b7500ce4..8c72568c 100644 --- a/configure.ac +++ b/configure.ac @@ -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! diff --git a/make.1 b/doc/make.1 similarity index 100% rename from make.1 rename to doc/make.1 diff --git a/maintMakefile b/maintMakefile index 19a154f4..c9e552e5 100644 --- a/maintMakefile +++ b/maintMakefile @@ -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 index 6670a0bc..00000000 --- a/makefile.vms +++ /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 . - -# 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) $< $@ diff --git a/mk/Amiga.mk b/mk/Amiga.mk index fe2a1f64..180cc784 100644 --- a/mk/Amiga.mk +++ b/mk/Amiga.mk @@ -20,16 +20,19 @@ 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 index 00000000..45951f28 --- /dev/null +++ b/mk/Posix.mk.in @@ -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 . + +# 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 index 00000000..a436239f --- /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 . + +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) diff --git a/mk/Windows32.mk b/mk/Windows32.mk index 8848827b..fb643174 100644 --- a/mk/Windows32.mk +++ b/mk/Windows32.mk @@ -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) diff --git a/mk/msdosdjgpp.mk b/mk/msdosdjgpp.mk index a9dd2501..7d617938 100644 --- a/mk/msdosdjgpp.mk +++ b/mk/msdosdjgpp.mk @@ -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) diff --git a/po/POTFILES.in b/po/POTFILES.in index 214fdf1f..87f6fcd9 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -15,33 +15,33 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see . -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 index 7591e27d..00000000 --- a/prepare_w32.bat +++ /dev/null @@ -1,6 +0,0 @@ -@echo off -@echo Windows32 SCM build preparation of config.h.W32 and NMakefile. -if not exist config.h.W32 copy config.h.W32.template config.h.W32 -if not exist config.h copy config.h.W32 config.h -if not exist NMakefile copy NMakefile.template NMakefile -@echo Preparation complete. Run build_w32.bat to compile and link. diff --git a/alloca.c b/src/alloca.c similarity index 100% rename from alloca.c rename to src/alloca.c diff --git a/amiga.c b/src/amiga.c similarity index 100% rename from amiga.c rename to src/amiga.c diff --git a/amiga.h b/src/amiga.h 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 diff --git a/arscan.c b/src/arscan.c similarity index 100% rename from arscan.c rename to src/arscan.c diff --git a/commands.c b/src/commands.c similarity index 100% rename from commands.c rename to src/commands.c diff --git a/commands.h b/src/commands.h similarity index 100% rename from commands.h rename to src/commands.h diff --git a/config.ami.template b/src/config.ami.template similarity index 100% rename from config.ami.template rename to src/config.ami.template diff --git a/config.h-vms.template b/src/config.h-vms.template similarity index 100% rename from config.h-vms.template rename to src/config.h-vms.template diff --git a/config.h.W32.template b/src/config.h.W32.template similarity index 100% rename from config.h.W32.template rename to src/config.h.W32.template diff --git a/configh.dos.template b/src/configh.dos.template similarity index 100% rename from configh.dos.template rename to src/configh.dos.template diff --git a/debug.h b/src/debug.h similarity index 100% rename from debug.h rename to src/debug.h diff --git a/default.c b/src/default.c 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 diff --git a/expand.c b/src/expand.c similarity index 100% rename from expand.c rename to src/expand.c diff --git a/file.c b/src/file.c similarity index 100% rename from file.c rename to src/file.c diff --git a/filedef.h b/src/filedef.h similarity index 100% rename from filedef.h rename to src/filedef.h diff --git a/function.c b/src/function.c similarity index 100% rename from function.c rename to src/function.c diff --git a/getloadavg.c b/src/getloadavg.c similarity index 100% rename from getloadavg.c rename to src/getloadavg.c diff --git a/getopt.c b/src/getopt.c similarity index 100% rename from getopt.c rename to src/getopt.c diff --git a/getopt.h b/src/getopt.h similarity index 100% rename from getopt.h rename to src/getopt.h diff --git a/getopt1.c b/src/getopt1.c similarity index 100% rename from getopt1.c rename to src/getopt1.c diff --git a/gettext.h b/src/gettext.h similarity index 100% rename from gettext.h rename to src/gettext.h diff --git a/gmk-default.scm b/src/gmk-default.scm similarity index 100% rename from gmk-default.scm rename to src/gmk-default.scm diff --git a/gnumake.h b/src/gnumake.h similarity index 100% rename from gnumake.h rename to src/gnumake.h diff --git a/guile.c b/src/guile.c similarity index 100% rename from guile.c rename to src/guile.c diff --git a/hash.c b/src/hash.c similarity index 100% rename from hash.c rename to src/hash.c diff --git a/hash.h b/src/hash.h similarity index 100% rename from hash.h rename to src/hash.h diff --git a/implicit.c b/src/implicit.c 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 diff --git a/load.c b/src/load.c similarity index 100% rename from load.c rename to src/load.c diff --git a/loadapi.c b/src/loadapi.c similarity index 100% rename from loadapi.c rename to src/loadapi.c diff --git a/main.c b/src/main.c similarity index 100% rename from main.c rename to src/main.c diff --git a/makeint.h b/src/makeint.h similarity index 100% rename from makeint.h rename to src/makeint.h diff --git a/misc.c b/src/misc.c 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 diff --git a/output.c b/src/output.c similarity index 100% rename from output.c rename to src/output.c diff --git a/output.h b/src/output.h similarity index 100% rename from output.h rename to src/output.h diff --git a/posixos.c b/src/posixos.c similarity index 100% rename from posixos.c rename to src/posixos.c diff --git a/read.c b/src/read.c similarity index 100% rename from read.c rename to src/read.c diff --git a/remake.c b/src/remake.c similarity index 100% rename from remake.c rename to src/remake.c diff --git a/remote-cstms.c b/src/remote-cstms.c similarity index 100% rename from remote-cstms.c rename to src/remote-cstms.c diff --git a/remote-stub.c b/src/remote-stub.c similarity index 100% rename from remote-stub.c rename to src/remote-stub.c diff --git a/rule.c b/src/rule.c similarity index 100% rename from rule.c rename to src/rule.c diff --git a/rule.h b/src/rule.h similarity index 100% rename from rule.h rename to src/rule.h diff --git a/signame.c b/src/signame.c similarity index 100% rename from signame.c rename to src/signame.c diff --git a/strcache.c b/src/strcache.c similarity index 100% rename from strcache.c rename to src/strcache.c diff --git a/variable.c b/src/variable.c similarity index 100% rename from variable.c rename to src/variable.c diff --git a/variable.h b/src/variable.h similarity index 100% rename from variable.h rename to src/variable.h diff --git a/version.c b/src/version.c similarity index 100% rename from version.c rename to src/version.c diff --git a/vms_exit.c b/src/vms_exit.c similarity index 100% rename from vms_exit.c rename to src/vms_exit.c diff --git a/vms_export_symbol.c b/src/vms_export_symbol.c similarity index 100% rename from vms_export_symbol.c rename to src/vms_export_symbol.c diff --git a/vms_progname.c b/src/vms_progname.c similarity index 100% rename from vms_progname.c rename to src/vms_progname.c diff --git a/vmsdir.h b/src/vmsdir.h similarity index 100% rename from vmsdir.h rename to src/vmsdir.h diff --git a/vmsfunctions.c b/src/vmsfunctions.c similarity index 100% rename from vmsfunctions.c rename to src/vmsfunctions.c diff --git a/vmsify.c b/src/vmsify.c similarity index 100% rename from vmsify.c rename to src/vmsify.c diff --git a/vmsjobs.c b/src/vmsjobs.c similarity index 100% rename from vmsjobs.c rename to src/vmsjobs.c diff --git a/vpath.c b/src/vpath.c similarity index 100% rename from vpath.c rename to src/vpath.c diff --git a/w32/compat/dirent.c b/src/w32/compat/dirent.c similarity index 100% rename from w32/compat/dirent.c rename to src/w32/compat/dirent.c diff --git a/w32/compat/posixfcn.c b/src/w32/compat/posixfcn.c similarity index 100% rename from w32/compat/posixfcn.c rename to src/w32/compat/posixfcn.c diff --git a/w32/include/dirent.h b/src/w32/include/dirent.h similarity index 100% rename from w32/include/dirent.h rename to src/w32/include/dirent.h diff --git a/w32/include/dlfcn.h b/src/w32/include/dlfcn.h similarity index 100% rename from w32/include/dlfcn.h rename to src/w32/include/dlfcn.h diff --git a/w32/include/pathstuff.h b/src/w32/include/pathstuff.h similarity index 100% rename from w32/include/pathstuff.h rename to src/w32/include/pathstuff.h diff --git a/w32/include/sub_proc.h b/src/w32/include/sub_proc.h similarity index 100% rename from w32/include/sub_proc.h rename to src/w32/include/sub_proc.h diff --git a/w32/include/w32err.h b/src/w32/include/w32err.h similarity index 100% rename from w32/include/w32err.h rename to src/w32/include/w32err.h diff --git a/w32/pathstuff.c b/src/w32/pathstuff.c similarity index 100% rename from w32/pathstuff.c rename to src/w32/pathstuff.c diff --git a/w32/subproc/misc.c b/src/w32/subproc/misc.c similarity index 100% rename from w32/subproc/misc.c rename to src/w32/subproc/misc.c diff --git a/w32/subproc/proc.h b/src/w32/subproc/proc.h similarity index 100% rename from w32/subproc/proc.h rename to src/w32/subproc/proc.h diff --git a/w32/subproc/sub_proc.c b/src/w32/subproc/sub_proc.c similarity index 100% rename from w32/subproc/sub_proc.c rename to src/w32/subproc/sub_proc.c diff --git a/w32/subproc/w32err.c b/src/w32/subproc/w32err.c similarity index 100% rename from w32/subproc/w32err.c rename to src/w32/subproc/w32err.c diff --git a/w32/w32os.c b/src/w32/w32os.c similarity index 100% rename from w32/w32os.c rename to src/w32/w32os.c diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl index de960475..cd8a643c 100644 --- a/tests/run_make_tests.pl +++ b/tests/run_make_tests.pl @@ -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 $_ = ; 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. diff --git a/tests/scripts/features/load b/tests/scripts/features/load index dcc1cdfb..56f80e24 100644 --- a/tests/scripts/features/load +++ b/tests/scripts/features/load @@ -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) { diff --git a/tests/scripts/features/loadapi b/tests/scripts/features/loadapi index acc3c780..c8895572 100644 --- a/tests/scripts/features/loadapi +++ b/tests/scripts/features/loadapi @@ -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) {