1rem @echo off 2 3set PCCDIR= 4set PREFIX= 5set usecl= 6set doinstall=false 7 8:parsecommandline 9if '%1' == '/h' goto dispinfo 10if '%1' == '/pcc' goto usepcc 11if '%1' == '/cl' goto usecl 12if '%1' == '/prefix' goto prefix 13if '%1' == '/pccdir' goto pccdir 14if '%1' == '/pccsrcdir' goto pccsrcdir 15if '%1' == '/pcclibssrcdir' goto pcclibssrcdir 16if '%1' == '/install' set doinstall=true 17goto build 18 19:dispinfo 20echo build.bat [/h] { /pcc or /cl } [/prefix -dir-] [/pccdir -dir-] [/pccsrcdir -dir-] [/pcclibssrcdir -dir-] [/install] 21goto end 22 23:prefix 24shift 25set PREFIX=%1 26shift 27goto parsecommandline 28 29:pccdir 30shift 31set PCCDIR=%1 32shift 33goto parsecommandline 34 35:pccsrcdir 36shift 37set PCCSRCDIR=%1 38shift 39goto parsecommandline 40 41:pcclibssrcdir 42shift 43set PCCLIBSSRCDIR=%1 44shift 45goto parsecommandline 46 47:usecl 48set CC=cl.exe -D__MSC__ 49set CFLAGS=/nologo /Zi /MT /W2 50set CFLAGS2=/nologo /Zi /MD /Za /Wall /GS- 51set OBJ=obj 52set AR=lib.exe /nologo 53set AR_OUT=/OUT:libpcc.a 54set usecl=true 55shift 56goto parsecommandline 57 58:usepcc 59set CC=pcc.exe 60set CFLAGS=-g 61set CFLAGS2=-fno-stack-protector-all 62set OBJ=o 63set AR=ar.exe 64set AR_OUT=r libpcc.a 65set usecl=false 66shift 67goto parsecommandline 68 69:build 70 71if '%usecl%' == '' goto dispinfo 72 73set PREFIX=###%PREFIX%### 74set PREFIX=%PREFIX:"###=% 75set PREFIX=%PREFIX:###"=% 76set PREFIX=%PREFIX:###=% 77 78set PCCDIR=###%PCCDIR%### 79set PCCDIR=%PCCDIR:"###=% 80set PCCDIR=%PCCDIR:###"=% 81set PCCDIR=%PCCDIR:###=% 82 83set PCCSRCDIR=###%PCCSRCDIR%### 84set PCCSRCDIR=%PCCSRCDIR:"###=% 85set PCCSRCDIR=%PCCSRCDIR:###"=% 86set PCCSRCDIR=%PCCSRCDIR:###=% 87 88set PCCLIBSSRCDIR=###%PCCLIBSSRCDIR%### 89set PCCLIBSSRCDIR=%PCCLIBSSRCDIR:"###=% 90set PCCLIBSSRCDIR=%PCCLIBSSRCDIR:###"=% 91set PCCLIBSSRCDIR=%PCCLIBSSRCDIR:###=% 92 93if not '%PCCDIR%' == '' goto pccdirset 94set PCCDIR=C:\Program Files\pcc 95:pccdirset 96 97if not '%PCCSRCDIR%' == '' goto pccsrcdirset 98set PCCSRCDIR=..\.. 99:pccsrcdirset 100 101if not '%PCCLIBSSRCDIR%' == '' goto pcclibssrcdirset 102set PCCLIBSSRCDIR=..\..\..\pcc-libs 103:pcclibssrcdirset 104 105if '%usecl%' == 'true' goto ccprefixed 106set CC="%PCCDIR%\bin\%CC%" 107set AR="%PCCDIR%\bin\%AR%" 108:ccprefixed 109 110set TARGOS=win32 111set MACH=i386 112set LIBEXECDIR="" 113 114set MIPDIR=%PCCSRCDIR%\mip 115set CPPDIR=%PCCSRCDIR%\cc\cpp 116set CCOMDIR=%PCCSRCDIR%\cc\ccom 117set CCDIR=%PCCSRCDIR%\cc\cc 118set OSDIR=%PCCSRCDIR%\os\%TARGOS% 119set MACHDIR=%PCCSRCDIR%\arch\%MACH% 120set BISON_SIMPLE=%OSDIR%\bison.simple 121set CPPFLAGS=-DWIN32 -DGCC_COMPAT -DPCC_DEBUG -DCPP_DEBUG -DTARGOS=%TARGOS% -Dos_%TARGOS% -Dmach_%MACH% -DLIBEXECDIR=%LIBEXECDIR% -D_CRT_SECURE_NO_WARNINGS 122 123del *.obj *.o *.exe 124 125%CC% -o pcc.exe %CPPFLAGS% %CFLAGS% -I%CCDIR% -I%OSDIR% -I%MACHDIR% -I%MIPDIR% %CCDIR%\cc.c %MIPDIR%\compat.c 126 127bison -y -t -d --no-lines %CPPDIR%\cpy.y 128rem flex %CPPDIR%\scanner.l 129rem %CC% -o cpp.exe %CPPFLAGS% %CFLAGS% -I%CPPDIR% -I%OSDIR% -I%MACHDIR% -I%MIPDIR% -I. %CPPDIR%\cpp.c %MIPDIR%\compat.c y.tab.c lex.yy.c "C:\Program Files\UnxUtils\usr\local\lib\libfl.lib" 130%CC% -o cpp.exe %CPPFLAGS% %CFLAGS% -I%CPPDIR% -I%OSDIR% -I%MACHDIR% -I%MIPDIR% -I. %CPPDIR%\cpp.c %CPPDIR%\token.c %MIPDIR%\compat.c y.tab.c "C:\Program Files\UnxUtils\usr\local\lib\libfl.lib" 131 132%CC% -o mkext.exe -DMKEXT %CPPFLAGS% %CFLAGS% -I%CCOMDIR% -I%OSDIR% -I%MACHDIR% -I%MIPDIR% %MIPDIR%\mkext.c %MACHDIR%\table.c %MIPDIR%\common.c 133mkext 134bison -y -t -d --no-lines %CCOMDIR%\cgram.y 135move y.tab.c cgram.c 136move y.tab.h cgram.h 137flex %CCOMDIR%\scan.l 138move lex.yy.c scan.c 139 140%CC% -o ccom.exe %CPPFLAGS% %CFLAGS% -I%CCOMDIR% -I%OSDIR% -I%MACHDIR% -I%MIPDIR% -I. %CCOMDIR%\main.c %MIPDIR%\compat.c scan.c cgram.c external.c %CCOMDIR%\optim.c %CCOMDIR%\pftn.c %CCOMDIR%\trees.c %CCOMDIR%\inline.c %CCOMDIR%\symtabs.c %CCOMDIR%\init.c %MACHDIR%\local.c %MACHDIR%\code.c %CCOMDIR%\stabs.c %CCOMDIR%\gcc_compat.c %MIPDIR%\match.c %MIPDIR%\reader.c %MIPDIR%\optim2.c %MIPDIR%\regs.c %MACHDIR%\local2.c %MACHDIR%\order.c %MACHDIR%\table.c %MIPDIR%\common.c "C:\Program Files\UnxUtils\usr\local\lib\libfl.lib" 141 142if not '%PREFIX%' == '' goto prefixset 143set PREFIX=C:\Program Files\pcc 144:prefixset 145 146set PCCDESTDIR=%PREFIX% 147set LIBPCCDESTDIR=%PREFIX%\lib\i386-win32\0.9.9 148 149set LIBPCCDIR=%PCCLIBSSRCDIR%\libpcc 150%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\_alloca.c 151%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\adddi3.c 152%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\anddi3.c 153%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\ashldi3.c 154%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\ashrdi3.c 155%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\cmpdi2.c 156%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\divdi3.c 157%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\fixdfdi.c 158%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\fixsfdi.c 159%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\fixunsdfdi.c 160%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\fixunssfdi.c 161%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\floatdidf.c 162%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\floatdisf.c 163%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\floatunsdidf.c 164%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\iordi3.c 165%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\lshldi3.c 166%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\lshrdi3.c 167%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\moddi3.c 168%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\muldi3.c 169%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\negdi2.c 170%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\notdi2.c 171%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\qdivrem.c 172%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\ssp.c 173%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\subdi3.c 174%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\ucmpdi2.c 175%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\udivdi3.c 176%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\umoddi3.c 177%CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\xordi3.c 178 179if '%usecl%' == 'false' %CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\_ftol.c 180if '%usecl%' == 'true' ml /nologo -c %LIBPCCDIR%\_ftol.asm 181 182%AR% %AR_OUT% _ftol.%OBJ% adddi3.%OBJ% anddi3.%OBJ% ashldi3.%OBJ% ashrdi3.%OBJ% cmpdi2.%OBJ% divdi3.%OBJ% fixdfdi.%OBJ% fixsfdi.%OBJ% fixunsdfdi.%OBJ% fixunssfdi.%OBJ% floatdidf.%OBJ% floatdisf.%OBJ% floatunsdidf.%OBJ% iordi3.%OBJ% lshldi3.%OBJ% lshrdi3.%OBJ% moddi3.%OBJ% muldi3.%OBJ% negdi2.%OBJ% notdi2.%OBJ% qdivrem.%OBJ% ssp.%OBJ% subdi3.%OBJ% ucmpdi2.%OBJ% udivdi3.%OBJ% umoddi3.%OBJ% xordi3.%OBJ% 183 184if not '%doinstall%' == 'true' goto end 185 186md "%PCCDESTDIR%" 187md "%PCCDESTDIR%\bin" 188md "%PCCDESTDIR%\libexec" 189md "%PCCDESTDIR%\man" 190md "%PCCDESTDIR%\man\man1" 191md "%LIBPCCDESTDIR%\lib" 192md "%LIBPCCDESTDIR%\include" 193 194copy pcc.exe "%PCCDESTDIR%\bin" 195copy cpp.exe "%PCCDESTDIR%\libexec" 196copy ccom.exe "%PCCDESTDIR%\libexec" 197 198copy libpcc.a "%LIBPCCDESTDIR%\lib" 199copy "%LIBPCCDIR%\include\*.h" "%LIBPCCDESTDIR%\include" 200 201copy "%CCDIR%\cc.1" "%PCCDESTDIR%\man\man1" 202copy "%CPPDIR%\cpp.1" "%PCCDESTDIR%\man\man1" 203copy "%CCOMDIR%\ccom.1" "%PCCDESTDIR%\man\man1" 204 205:end 206