1@echo off
2rem Copyright (C) 1998-2020 Free Software Foundation, Inc.
3rem This file is part of GNU Make.
4rem
5rem GNU Make is free software; you can redistribute it and/or modify it under
6rem the terms of the GNU General Public License as published by the Free
7rem Software Foundation; either version 3 of the License, or (at your option)
8rem any later version.
9rem
10rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
11rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
13rem more details.
14rem
15rem You should have received a copy of the GNU General Public License along
16rem with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18echo Building Make for MSDOS with DJGPP
19
20rem The SmallEnv trick protects against too small environment block,
21rem in which case the values will be truncated and the whole thing
22rem goes awry.  COMMAND.COM will say "Out of environment space", but
23rem many people don't care, so we force them to care by refusing to go.
24
25rem Where is the srcdir?
26set XSRC=.
27if not "%XSRC%"=="." goto SmallEnv
28if "%1%"=="" goto SrcDone
29if "%1%"=="." goto SrcDone
30set XSRC=%1
31
32if not "%XSRC%"=="%1" goto SmallEnv
33
34:SrcDone
35
36if not exist src mkdir src
37if not exist lib mkdir lib
38
39copy /Y %XSRC%\src\configh.dos .\src\config.h
40
41copy /Y %XSRC%\lib\glob.in.h .\lib\glob.h
42copy /Y %XSRC%\lib\fnmatch.in.h .\lib\fnmatch.h
43
44rem Echo ON so they will see what is going on.
45@echo on
46gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/commands.c -o commands.o
47gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/output.c -o output.o
48gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/job.c -o job.o
49gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/dir.c -o dir.o
50gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/file.c -o file.o
51gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/misc.c -o misc.o
52gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/main.c -o main.o
53gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -DINCLUDEDIR=\"c:/djgpp/include\" -O2 -g %XSRC%/src/read.c -o read.o
54gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -DLIBDIR=\"c:/djgpp/lib\" -O2 -g %XSRC%/src/remake.c -o remake.o
55gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/rule.c -o rule.o
56gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/implicit.c -o implicit.o
57gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/default.c -o default.o
58gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/variable.c -o variable.o
59gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/expand.c -o eyxpand.o
60gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/function.c -o function.o
61gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/vpath.c -o vpath.o
62gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/hash.c -o hash.o
63gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/strcache.c -o strcache.o
64gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/version.c -o version.o
65gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/ar.c -o ar.o
66gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/arscan.c -o arscan.o
67gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/signame.c -o signame.o
68gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/remote-stub.c -o remote-stub.o
69gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/getopt.c -o getopt.o
70gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/src/getopt1.c -o getopt1.o
71gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/lib/glob.c -o lib/glob.o
72gcc -c -I./src -I%XSRC%/src -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/lib/fnmatch.c -o lib/fnmatch.o
73@echo off
74echo commands.o > respf.$$$
75for %%f in (job output dir file misc main read remake rule implicit default variable) do echo %%f.o >> respf.$$$
76for %%f in (expand function vpath hash strcache version ar arscan signame remote-stub getopt getopt1) do echo %%f.o >> respf.$$$
77for %%f in (lib\glob lib\fnmatch) do echo %%f.o >> respf.$$$
78rem gcc  -c -I./src -I%XSRC% -I./lib -I%XSRC%/lib -DHAVE_CONFIG_H -O2 -g %XSRC%/guile.c -o guile.o
79rem echo guile.o >> respf.$$$
80@echo Linking...
81@echo on
82gcc -o make.exe @respf.$$$
83@echo off
84if not exist make.exe echo Make.exe build failed...
85if exist make.exe echo make.exe is now built!
86if exist make.exe del respf.$$$
87if exist make.exe copy /Y Basic.mk Makefile
88goto End
89
90:SmallEnv
91echo Your environment is too small.  Please enlarge it and run me again.
92
93:End
94set XRSC=
95@echo on
96