| 1 | rem @echo off
|
|---|
| 2 |
|
|---|
| 3 | set PCCDIR=
|
|---|
| 4 | set PREFIX=
|
|---|
| 5 | set usecl=
|
|---|
| 6 | set doinstall=false
|
|---|
| 7 |
|
|---|
| 8 | :parsecommandline
|
|---|
| 9 | if '%1' == '/h' goto dispinfo
|
|---|
| 10 | if '%1' == '/pcc' goto usepcc
|
|---|
| 11 | if '%1' == '/cl' goto usecl
|
|---|
| 12 | if '%1' == '/prefix' goto prefix
|
|---|
| 13 | if '%1' == '/pccdir' goto pccdir
|
|---|
| 14 | if '%1' == '/pccsrcdir' goto pccsrcdir
|
|---|
| 15 | if '%1' == '/pcclibssrcdir' goto pcclibssrcdir
|
|---|
| 16 | if '%1' == '/install' set doinstall=true
|
|---|
| 17 | goto build
|
|---|
| 18 |
|
|---|
| 19 | :dispinfo
|
|---|
| 20 | echo build.bat [/h] { /pcc or /cl } [/prefix -dir-] [/pccdir -dir-] [/pccsrcdir -dir-] [/pcclibssrcdir -dir-] [/install]
|
|---|
| 21 | goto end
|
|---|
| 22 |
|
|---|
| 23 | :prefix
|
|---|
| 24 | shift
|
|---|
| 25 | set PREFIX=%1
|
|---|
| 26 | shift
|
|---|
| 27 | goto parsecommandline
|
|---|
| 28 |
|
|---|
| 29 | :pccdir
|
|---|
| 30 | shift
|
|---|
| 31 | set PCCDIR=%1
|
|---|
| 32 | shift
|
|---|
| 33 | goto parsecommandline
|
|---|
| 34 |
|
|---|
| 35 | :pccsrcdir
|
|---|
| 36 | shift
|
|---|
| 37 | set PCCSRCDIR=%1
|
|---|
| 38 | shift
|
|---|
| 39 | goto parsecommandline
|
|---|
| 40 |
|
|---|
| 41 | :pcclibssrcdir
|
|---|
| 42 | shift
|
|---|
| 43 | set PCCLIBSSRCDIR=%1
|
|---|
| 44 | shift
|
|---|
| 45 | goto parsecommandline
|
|---|
| 46 |
|
|---|
| 47 | :usecl
|
|---|
| 48 | set CC=cl.exe -D__MSC__
|
|---|
| 49 | set CFLAGS=/nologo /Zi /MT /W2
|
|---|
| 50 | set CFLAGS2=/nologo /Zi /MD /Za /Wall /GS-
|
|---|
| 51 | set OBJ=obj
|
|---|
| 52 | set AR=lib.exe /nologo
|
|---|
| 53 | set AR_OUT=/OUT:libpcc.a
|
|---|
| 54 | set usecl=true
|
|---|
| 55 | shift
|
|---|
| 56 | goto parsecommandline
|
|---|
| 57 |
|
|---|
| 58 | :usepcc
|
|---|
| 59 | set CC=pcc.exe
|
|---|
| 60 | set CFLAGS=-g
|
|---|
| 61 | set CFLAGS2=-fno-stack-protector-all
|
|---|
| 62 | set OBJ=o
|
|---|
| 63 | set AR=ar.exe
|
|---|
| 64 | set AR_OUT=r libpcc.a
|
|---|
| 65 | set usecl=false
|
|---|
| 66 | shift
|
|---|
| 67 | goto parsecommandline
|
|---|
| 68 |
|
|---|
| 69 | :build
|
|---|
| 70 |
|
|---|
| 71 | if '%usecl%' == '' goto dispinfo
|
|---|
| 72 |
|
|---|
| 73 | set PREFIX=###%PREFIX%###
|
|---|
| 74 | set PREFIX=%PREFIX:"###=%
|
|---|
| 75 | set PREFIX=%PREFIX:###"=%
|
|---|
| 76 | set PREFIX=%PREFIX:###=%
|
|---|
| 77 |
|
|---|
| 78 | set PCCDIR=###%PCCDIR%###
|
|---|
| 79 | set PCCDIR=%PCCDIR:"###=%
|
|---|
| 80 | set PCCDIR=%PCCDIR:###"=%
|
|---|
| 81 | set PCCDIR=%PCCDIR:###=%
|
|---|
| 82 |
|
|---|
| 83 | set PCCSRCDIR=###%PCCSRCDIR%###
|
|---|
| 84 | set PCCSRCDIR=%PCCSRCDIR:"###=%
|
|---|
| 85 | set PCCSRCDIR=%PCCSRCDIR:###"=%
|
|---|
| 86 | set PCCSRCDIR=%PCCSRCDIR:###=%
|
|---|
| 87 |
|
|---|
| 88 | set PCCLIBSSRCDIR=###%PCCLIBSSRCDIR%###
|
|---|
| 89 | set PCCLIBSSRCDIR=%PCCLIBSSRCDIR:"###=%
|
|---|
| 90 | set PCCLIBSSRCDIR=%PCCLIBSSRCDIR:###"=%
|
|---|
| 91 | set PCCLIBSSRCDIR=%PCCLIBSSRCDIR:###=%
|
|---|
| 92 |
|
|---|
| 93 | if not '%PCCDIR%' == '' goto pccdirset
|
|---|
| 94 | set PCCDIR=C:\Program Files\pcc
|
|---|
| 95 | :pccdirset
|
|---|
| 96 |
|
|---|
| 97 | if not '%PCCSRCDIR%' == '' goto pccsrcdirset
|
|---|
| 98 | set PCCSRCDIR=..\..
|
|---|
| 99 | :pccsrcdirset
|
|---|
| 100 |
|
|---|
| 101 | if not '%PCCLIBSSRCDIR%' == '' goto pcclibssrcdirset
|
|---|
| 102 | set PCCLIBSSRCDIR=..\..\..\pcc-libs
|
|---|
| 103 | :pcclibssrcdirset
|
|---|
| 104 |
|
|---|
| 105 | if '%usecl%' == 'true' goto ccprefixed
|
|---|
| 106 | set CC="%PCCDIR%\bin\%CC%"
|
|---|
| 107 | set AR="%PCCDIR%\bin\%AR%"
|
|---|
| 108 | :ccprefixed
|
|---|
| 109 |
|
|---|
| 110 | set TARGOS=win32
|
|---|
| 111 | set MACH=i386
|
|---|
| 112 | set LIBEXECDIR=""
|
|---|
| 113 |
|
|---|
| 114 | set MIPDIR=%PCCSRCDIR%\mip
|
|---|
| 115 | set CPPDIR=%PCCSRCDIR%\cc\cpp
|
|---|
| 116 | set CCOMDIR=%PCCSRCDIR%\cc\ccom
|
|---|
| 117 | set CCDIR=%PCCSRCDIR%\cc\cc
|
|---|
| 118 | set OSDIR=%PCCSRCDIR%\os\%TARGOS%
|
|---|
| 119 | set MACHDIR=%PCCSRCDIR%\arch\%MACH%
|
|---|
| 120 | set BISON_SIMPLE=%OSDIR%\bison.simple
|
|---|
| 121 | set CPPFLAGS=-DWIN32 -DGCC_COMPAT -DPCC_DEBUG -DCPP_DEBUG -DTARGOS=%TARGOS% -Dos_%TARGOS% -Dmach_%MACH% -DLIBEXECDIR=%LIBEXECDIR% -D_CRT_SECURE_NO_WARNINGS
|
|---|
| 122 |
|
|---|
| 123 | del *.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 |
|
|---|
| 127 | bison -y -t -d --no-lines %CPPDIR%\cpy.y
|
|---|
| 128 | rem flex %CPPDIR%\scanner.l
|
|---|
| 129 | 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"
|
|---|
| 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
|
|---|
| 133 | mkext
|
|---|
| 134 | bison -y -t -d --no-lines %CCOMDIR%\cgram.y
|
|---|
| 135 | move y.tab.c cgram.c
|
|---|
| 136 | move y.tab.h cgram.h
|
|---|
| 137 | flex %CCOMDIR%\scan.l
|
|---|
| 138 | move 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 |
|
|---|
| 142 | if not '%PREFIX%' == '' goto prefixset
|
|---|
| 143 | set PREFIX=C:\Program Files\pcc
|
|---|
| 144 | :prefixset
|
|---|
| 145 |
|
|---|
| 146 | set PCCDESTDIR=%PREFIX%
|
|---|
| 147 | set LIBPCCDESTDIR=%PREFIX%\lib\i386-win32\0.9.9
|
|---|
| 148 |
|
|---|
| 149 | set 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 |
|
|---|
| 179 | if '%usecl%' == 'false' %CC% -c %CPPFLAGS% %CFLAGS2% -I%LIBPCCDIR% %LIBPCCDIR%\_ftol.c
|
|---|
| 180 | if '%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 |
|
|---|
| 184 | if not '%doinstall%' == 'true' goto end
|
|---|
| 185 |
|
|---|
| 186 | md "%PCCDESTDIR%"
|
|---|
| 187 | md "%PCCDESTDIR%\bin"
|
|---|
| 188 | md "%PCCDESTDIR%\libexec"
|
|---|
| 189 | md "%PCCDESTDIR%\man"
|
|---|
| 190 | md "%PCCDESTDIR%\man\man1"
|
|---|
| 191 | md "%LIBPCCDESTDIR%\lib"
|
|---|
| 192 | md "%LIBPCCDESTDIR%\include"
|
|---|
| 193 |
|
|---|
| 194 | copy pcc.exe "%PCCDESTDIR%\bin"
|
|---|
| 195 | copy cpp.exe "%PCCDESTDIR%\libexec"
|
|---|
| 196 | copy ccom.exe "%PCCDESTDIR%\libexec"
|
|---|
| 197 |
|
|---|
| 198 | copy libpcc.a "%LIBPCCDESTDIR%\lib"
|
|---|
| 199 | copy "%LIBPCCDIR%\include\*.h" "%LIBPCCDESTDIR%\include"
|
|---|
| 200 |
|
|---|
| 201 | copy "%CCDIR%\cc.1" "%PCCDESTDIR%\man\man1"
|
|---|
| 202 | copy "%CPPDIR%\cpp.1" "%PCCDESTDIR%\man\man1"
|
|---|
| 203 | copy "%CCOMDIR%\ccom.1" "%PCCDESTDIR%\man\man1"
|
|---|
| 204 |
|
|---|
| 205 | :end
|
|---|