2006-02-11 22:16:04 +00:00
|
|
|
@echo off
|
2017-07-10 01:52:28 +00:00
|
|
|
rem Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
2006-02-11 22:16:04 +00:00
|
|
|
rem This file is part of GNU Make.
|
2007-07-04 19:35:15 +00:00
|
|
|
rem
|
|
|
|
rem GNU Make is free software; you can redistribute it and/or modify it under
|
|
|
|
rem the terms of the GNU General Public License as published by the Free
|
|
|
|
rem Software Foundation; either version 3 of the License, or (at your option)
|
|
|
|
rem any later version.
|
|
|
|
rem
|
|
|
|
rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for.
|
|
|
|
rem more details.
|
|
|
|
rem
|
|
|
|
rem You should have received a copy of the GNU General Public License along
|
|
|
|
rem with this program. If not, see <http://www.gnu.org/licenses/>.
|
2006-02-11 19:02:21 +00:00
|
|
|
|
2016-06-19 14:52:17 +00:00
|
|
|
setlocal
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
call :Reset
|
|
|
|
|
|
|
|
if "%1" == "-h" goto Usage
|
|
|
|
if "%1" == "--help" goto Usage
|
|
|
|
|
|
|
|
set MAKE=gnumake
|
|
|
|
set GUILE=Y
|
2016-06-19 14:52:17 +00:00
|
|
|
set COMPILER=cl.exe
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
set O=obj
|
2016-06-19 14:52:17 +00:00
|
|
|
set ARCH=x64
|
|
|
|
set DEBUG=N
|
2012-01-28 20:28:31 +00:00
|
|
|
|
2013-04-25 17:41:53 +00:00
|
|
|
:ParseSW
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
if "%1" == "--debug" goto SetDebug
|
|
|
|
if "%1" == "--without-guile" goto NoGuile
|
2016-06-19 14:52:17 +00:00
|
|
|
if "%1" == "--x86" goto Set32Bit
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
if "%1" == "gcc" goto SetCC
|
|
|
|
if "%1" == "" goto DoneSW
|
2016-06-19 14:52:17 +00:00
|
|
|
goto Usage
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
|
|
|
|
:SetDebug
|
|
|
|
set DEBUG=Y
|
2013-04-25 17:41:53 +00:00
|
|
|
shift
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto ParseSW
|
|
|
|
|
2013-04-25 17:41:53 +00:00
|
|
|
:NoGuile
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
set GUILE=N
|
|
|
|
echo Building without Guile
|
2013-04-25 17:41:53 +00:00
|
|
|
shift
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto ParseSW
|
|
|
|
|
2016-06-19 14:52:17 +00:00
|
|
|
:Set32Bit
|
|
|
|
set ARCH=x86
|
|
|
|
shift
|
|
|
|
goto ParseSW
|
|
|
|
|
2013-04-25 17:41:53 +00:00
|
|
|
:SetCC
|
|
|
|
set COMPILER=gcc
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
set O=o
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
echo Building with GCC
|
2013-04-25 17:41:53 +00:00
|
|
|
shift
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto ParseSW
|
|
|
|
|
2012-01-28 20:28:31 +00:00
|
|
|
rem Build with Guile is supported only on NT and later versions
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
:DoneSW
|
2013-04-25 17:41:53 +00:00
|
|
|
echo.
|
2016-06-19 14:52:17 +00:00
|
|
|
echo Creating GNU Make for Windows 9X/NT/2K/XP/Vista/7/8/10
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
if "%DEBUG%" == "Y" echo Building without compiler optimizations
|
|
|
|
|
|
|
|
if "%COMPILER%" == "gcc" goto GccBuild
|
|
|
|
|
2016-06-19 14:52:17 +00:00
|
|
|
rem Make sure we can find a compiler
|
|
|
|
%COMPILER% >nul 2>&1
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS120COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS80COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS71COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%VS70COMNTOOLS%\..\..\VC\vcvarsall.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%V6TOOLS%\VC98\Bin\vcvars32.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%V6TOOLS%\VC97\Bin\vcvars32.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
set "VSVARS=%V5TOOLS%\VC\Bin\vcvars32.bat"
|
|
|
|
call :CheckMSVC
|
|
|
|
if not ERRORLEVEL 1 goto FoundMSVC
|
|
|
|
|
|
|
|
rem We did not find anything--fail
|
|
|
|
echo No MSVC compiler available.
|
|
|
|
echo Please run vcvarsall.bat and/or configure your Path.
|
|
|
|
exit /b 1
|
|
|
|
|
|
|
|
:FoundMSVC
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
set OUTDIR=.\WinRel
|
|
|
|
set "OPTS=/O2 /D NDEBUG"
|
|
|
|
set LINKOPTS=
|
|
|
|
if "%DEBUG%" == "Y" set OUTDIR=.\WinDebug
|
|
|
|
if "%DEBUG%" == "Y" set "OPTS=/Zi /Od /D _DEBUG"
|
|
|
|
if "%DEBUG%" == "Y" set LINKOPTS=/DEBUG
|
|
|
|
call :Build
|
|
|
|
goto Done
|
|
|
|
|
|
|
|
:GccBuild
|
|
|
|
set OUTDIR=.\GccRel
|
|
|
|
set OPTS=-O2
|
|
|
|
if "%DEBUG%" == "Y" set OPTS=-O0
|
|
|
|
if "%DEBUG%" == "Y" set OUTDIR=.\GccDebug
|
|
|
|
call :Build
|
|
|
|
goto Done
|
|
|
|
|
|
|
|
:Done
|
|
|
|
call :Reset
|
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:Build
|
|
|
|
:: Clean the directory if it exists
|
|
|
|
if exist %OUTDIR%\nul rmdir /S /Q %OUTDIR%
|
|
|
|
|
|
|
|
:: Recreate it
|
|
|
|
mkdir %OUTDIR%
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
mkdir %OUTDIR%\src
|
|
|
|
mkdir %OUTDIR%\src\w32
|
|
|
|
mkdir %OUTDIR%\src\w32\compat
|
|
|
|
mkdir %OUTDIR%\src\w32\subproc
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
mkdir %OUTDIR%\glob
|
|
|
|
|
|
|
|
if "%GUILE%" == "Y" call :ChkGuile
|
2006-02-11 22:16:04 +00:00
|
|
|
|
2013-04-25 17:41:53 +00:00
|
|
|
echo.
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
echo Compiling %OUTDIR% version
|
|
|
|
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
if exist src\config.h.W32.template call :ConfigSCM
|
|
|
|
copy src\config.h.W32 %OUTDIR%\src\config.h
|
|
|
|
|
|
|
|
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
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
call :Compile glob\fnmatch
|
|
|
|
call :Compile glob\glob
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
|
|
|
|
if not "%COMPILER%" == "gcc" call :Compile src\w32\compat\dirent
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
|
|
|
|
call :Link
|
|
|
|
|
|
|
|
echo.
|
|
|
|
if not exist %OUTDIR%\%MAKE%.exe echo %OUTDIR% build FAILED!
|
|
|
|
if exist %OUTDIR%\%MAKE%.exe echo %OUTDIR% build succeeded.
|
Remove unsupported build facilities.
Over time the non-standard build and install systems (nmake files,
smake files, Visual Studio project files, etc.) have atrophied and
maintaining them is not worth the effort, for such a simple utility
as make. Remove all the non-standard build tool support and unify
OS-specific build rules under a basic set of (GNU make) makefiles.
Preserve the existing bootstrapping scripts (for POSIX, Windows,
and MS-DOS). Also the existing VMS build scripts are left unchanged:
I don't have enough experience with VMS to venture into this area.
Perhaps one of the VMS maintainers might like to determine whether
conversion would be appropriate.
Rather than create libraries for w32 and glob (non-POSIX), simply
link the object files directly to remove the complexity.
* NEWS: Update with user-facing notes.
* Makefile.am: Clean up to use the latest automake best practices.
Build Windows code directly from the root makefile to avoid recursion.
* README.Amiga, README.DOS.template, README.W32.template: Updated.
* INSTALL: Point readers at the README.git file.
* maintMakefile: Remove obsolete files. Create Basic.mk file.
* Basic.mk.template, mk/*.mk: Create basic GNU make-based makefiles.
* build_w32.bat: Copy Basic.mk to Makefile
* configure.ac: We no longer need AM_PROG_AR.
* dosbuild.bat: Rename to builddos.bat. Incorporate configure.bat.
* Makefile.DOS.template: Remove.
* NMakefile.template, w32/subproc/NMakefile: Remove.
* SMakefile.template, glob/SMakefile, glob/SCOPTIONS, make.lnk: Remove.
* configure.bat, glob/configure.bat: Remove.
* w32/Makefile.am: Remove.
* make_msvc_net2003.sln, make_msvc_net2003.vcproj: Remove.
2017-11-12 22:44:38 +00:00
|
|
|
if exist %OUTDIR%\%MAKE%.exe copy /Y Basic.mk Makefile
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:Compile
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
echo %OUTDIR%\%1.%O% >>%OUTDIR%\link.sc
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
set EXTRAS=
|
|
|
|
if "%2" == "GUILE" set "EXTRAS=%GUILECFLAGS%"
|
|
|
|
if "%COMPILER%" == "gcc" goto GccCompile
|
|
|
|
|
|
|
|
:: MSVC Compile
|
|
|
|
echo on
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
%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
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
@echo off
|
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:GccCompile
|
|
|
|
:: GCC Compile
|
1996-07-19 21:43:36 +00:00
|
|
|
echo on
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
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
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
@echo off
|
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:Link
|
|
|
|
echo Linking %OUTDIR%/%MAKE%.exe
|
|
|
|
if "%COMPILER%" == "gcc" goto GccLink
|
|
|
|
|
|
|
|
:: MSVC Link
|
|
|
|
echo %GUILELIBS% kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib >>%OUTDIR%\link.sc
|
1996-07-19 21:43:36 +00:00
|
|
|
echo on
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
link.exe /NOLOGO /SUBSYSTEM:console /PDB:%OUTDIR%\%MAKE%.pdb %LINKOPTS% /OUT:%OUTDIR%\%MAKE%.exe @%OUTDIR%\link.sc
|
|
|
|
@echo off
|
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:GccLink
|
|
|
|
:: GCC Link
|
2005-08-08 05:08:00 +00:00
|
|
|
echo on
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
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
|
2013-06-22 14:32:46 +00:00
|
|
|
@echo off
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:ConfigSCM
|
|
|
|
echo Generating config from SCM templates
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
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
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:ChkGuile
|
|
|
|
if not "%OS%" == "Windows_NT" goto NoGuile
|
|
|
|
pkg-config --help > %OUTDIR%\guile.tmp 2> NUL
|
|
|
|
if ERRORLEVEL 1 goto NoPkgCfg
|
|
|
|
|
|
|
|
echo Checking for Guile 2.0
|
|
|
|
if not "%COMPILER%" == "gcc" set PKGMSC=--msvc-syntax
|
|
|
|
pkg-config --cflags --short-errors "guile-2.0" > %OUTDIR%\guile.tmp
|
|
|
|
if not ERRORLEVEL 1 set /P GUILECFLAGS= < %OUTDIR%\guile.tmp
|
|
|
|
|
|
|
|
pkg-config --libs --static --short-errors %PKGMSC% "guile-2.0" > %OUTDIR%\guile.tmp
|
|
|
|
if not ERRORLEVEL 1 set /P GUILELIBS= < %OUTDIR%\guile.tmp
|
|
|
|
|
|
|
|
if not "%GUILECFLAGS%" == "" goto GuileDone
|
|
|
|
|
|
|
|
echo Checking for Guile 1.8
|
|
|
|
pkg-config --cflags --short-errors "guile-1.8" > %OUTDIR%\guile.tmp
|
|
|
|
if not ERRORLEVEL 1 set /P GUILECFLAGS= < %OUTDIR%\guile.tmp
|
|
|
|
|
|
|
|
pkg-config --libs --static --short-errors %PKGMSC% "guile-1.8" > %OUTDIR%\guile.tmp
|
|
|
|
if not ERRORLEVEL 1 set /P GUILELIBS= < %OUTDIR%\guile.tmp
|
|
|
|
|
|
|
|
if not "%GUILECFLAGS%" == "" goto GuileDone
|
|
|
|
|
|
|
|
echo No Guile found, building without Guile
|
|
|
|
goto GuileDone
|
|
|
|
|
|
|
|
:NoPkgCfg
|
|
|
|
echo pkg-config not found, building without Guile
|
|
|
|
|
|
|
|
:GuileDone
|
|
|
|
if "%GUILECFLAGS%" == "" goto :EOF
|
|
|
|
|
|
|
|
echo Guile found, building with Guile
|
|
|
|
set "GUILECFLAGS=%GUILECFLAGS% -DHAVE_GUILE"
|
|
|
|
goto :EOF
|
|
|
|
|
2016-06-19 14:52:17 +00:00
|
|
|
:CheckMSVC
|
|
|
|
if not exist "%VSVARS%" exit /b 1
|
|
|
|
call "%VSVARS%" %ARCH%
|
|
|
|
if ERRORLEVEL 1 exit /b 1
|
|
|
|
%COMPILER% >nul 2>&1
|
|
|
|
if ERRORLEVEL 1 exit /b 1
|
|
|
|
goto :EOF
|
|
|
|
|
2013-04-25 17:41:53 +00:00
|
|
|
:Usage
|
|
|
|
echo Usage: %0 [options] [gcc]
|
|
|
|
echo Options:
|
|
|
|
echo. --without-guile Do not compile Guile support even if found
|
2016-06-19 14:52:17 +00:00
|
|
|
echo. --debug Make a Debug build--default is Release
|
|
|
|
echo. --x86 Make a 32bit binary--default is 64bit
|
2013-04-25 17:41:53 +00:00
|
|
|
echo. --help Display these instructions and exit
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
:Reset
|
2016-06-19 14:52:17 +00:00
|
|
|
set ARCH=
|
2013-04-25 17:41:53 +00:00
|
|
|
set COMPILER=
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
set DEBUG=
|
|
|
|
set GUILE=
|
|
|
|
set GUILECFLAGS=
|
|
|
|
set GUILELIBS=
|
|
|
|
set LINKOPTS=
|
|
|
|
set MAKE=
|
2013-04-25 17:41:53 +00:00
|
|
|
set NOGUILE=
|
Rework directory structure to use GNU-recommended "src" directory.
Move the source code (other than glob) into the "src" subdirectory.
Update all scripting and recommendations to support this change.
* *.c, *.h, w32/*: Move to src/
* configure.ac, Makefile.am, maintMakefile: Locate new source files.
* Basic.mk.template, mk/*: Update for new source file locations.
* NEWS, README.DOS.template: Update for new locations.
* build.template, build_w32.bat, builddos.bat: Ditto.
* po/POTFILES.in: Ditto
* tests/run_make_tests.pl, tests/scripts/features/load*: Ditto.
* make.1: Move to doc.
* mk/VMS.mk: Add support for building on VMS (hopefully).
* makefile.vms, prepare_w32.bat: Remove.
* SCOPTIONS: Update to define HAVE_CONFIG_H
2017-11-19 18:49:26 +00:00
|
|
|
set O=
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
set OPTS=
|
|
|
|
set OUTDIR=
|
|
|
|
set PKGMSC=
|
2016-06-19 14:52:17 +00:00
|
|
|
set VSVARS=
|
Extract jobserver implementation into OS-specific files.
* os.h, posixos.c, w32/w32os.c: New files implementing jobserver.
* job.c, job.h, main.c, makeint.h: Move content to new files.
* w32/include/sub_proc.h, w32/subproc/sub_proc.c: Ditto.
* Makefile.am: Build and package OS-specific files.
* build_w32.bat, make_msvc_net2003.vcproj, README.W32.template:
Update for new files, and clean up the build.
* POTFILES.in, maintMakefile, NMakefile.template: Ditto.
* w32/subproc/build.bat: Delete as unused.
2016-03-06 18:29:43 +00:00
|
|
|
goto :EOF
|