File: build.bat

package info (click to toggle)
pcc 1.2.0~DEVEL%2B20200630-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,236 kB
  • sloc: ansic: 105,570; yacc: 4,350; sh: 3,039; lex: 1,713; makefile: 720
file content (205 lines) | stat: -rw-r--r-- 7,037 bytes parent folder | download | duplicates (3)
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