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