summaryrefslogtreecommitdiff
path: root/os2/makefile
blob: 9d5fac42b0280eb4a686e6656d2a0559c9d7264b (plain)
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
#
# Makefile for compiling Perl under OS/2
#
# Needs a Unix compatible make.
# This makefile works for an initial compilation.  It does not
# include all dependencies and thus is unsuitable for serious
# development work.  Hey, I'm just inheriting what Diomidis gave me.
#
# Originally by Diomidis Spinellis, March 1990
# Adjusted for OS/2 port by Raymond Chen, June 1990
#

# Source files
SRC = array.c cmd.c cons.c consarg.c doarg.c doio.c dolist.c dump.c \
eval.c form.c hash.c perl.y perly.c regcomp.c regexec.c \
stab.c str.c toke.c util.c os2.c popen.c director.c suffix.c mktemp.c

# Object files
OBJ = perl.obj array.obj cmd.obj cons.obj consarg.obj doarg.obj doio.obj \
dolist.obj dump.obj eval.obj form.obj hash.obj perly.obj regcomp.obj \
regexec.obj stab.obj str.obj toke.obj util.obj os2.obj popen.obj \
director.obj suffix.obj mktemp.obj

# Files in the OS/2 distribution
DOSFILES=config.h director.c dir.h makefile os2.c popen.c suffix.c \
mktemp.c readme.os2

# Yacc flags
YFLAGS=-d

# Manual pages
MAN=perlman.1 perlman.2 perlman.3 perlman.4

CC=cl
# CBASE = flags everybody gets
# CPLAIN = flags for modules that give the compiler indigestion
# CFLAGS = flags for milder modules
# PERL = which version of perl to build
#
# For preliminary building:  No optimization, DEBUGGING set, symbols included.
#CBASE=-AL -Zi -G2 -Gs -DDEBUGGING
#CPLAIN=$(CBASE) -Od
#CFLAGS=$(CBASE) -Od
#PERL=perlsym.exe

# For the final build:  Optimization on, symbols stripped.
CBASE=-AL -Zi -G2 -Gs -DDEBUGGING
CPLAIN=$(CBASE) -Olt
CFLAGS=$(CBASE) -Oeglt
PERL=perl.exe

# Destination directory for executables
DESTDIR=\usr\bin

# Deliverables
#
all: $(PERL) glob.exe

perl.exe: $(OBJ) perl.arp
	link @perl.arp,perl,nul,/stack:32767 /NOE;
	exehdr /nologo /newfiles /pmtype:windowcompat perl.exe >nul

perlsym.exe: $(OBJ) perl.arp
	link @perl.arp,perlsym,nul,/stack:32767 /NOE /CODE;
	exehdr /nologo /newfiles /pmtype:windowcompat perlsym.exe >nul

perl.arp:
	echo array+cmd+cons+consarg+doarg+doio+dolist+dump+ >perl.arp
	echo eval+form+hash+perl+perly+regcomp+regexec+stab+suffix+ >>perl.arp
	echo str+toke+util+os2+popen+director+\c600\lib\setargv >>perl.arp

glob.exe: glob.c
	$(CC) glob.c setargv.obj -link /NOE
	exehdr /nologo /newfiles /pmtype:windowcompat glob.exe >nul

array.obj: array.c
	$(CC) $(CPLAIN) -c array.c
cmd.obj: cmd.c
cons.obj: cons.c perly.h
consarg.obj: consarg.c
#	$(CC) $(CPLAIN) -c consarg.c
doarg.obj: doarg.c
doio.obj: doio.c
dolist.obj: dolist.c
dump.obj: dump.c
eval.obj: eval.c evalargs.xc
	$(CC) /B2c2l /B3c3l $(CFLAGS) -c eval.c
form.obj: form.c
hash.obj: hash.c
perl.obj: perl.y
perly.obj: perly.c
regcomp.obj: regcomp.c
regexec.obj: regexec.c
stab.obj: stab.c
	$(CC) $(CPLAIN) -c stab.c
str.obj: str.c
suffix.obj: suffix.c
toke.obj: toke.c
	$(CC) /B3c3l $(CFLAGS) -c toke.c
util.obj: util.c
#	$(CC) $(CPLAIN) -c util.c
perly.h: ytab.h
	cp ytab.h perly.h
director.obj: director.c
popen.obj: popen.c
os2.obj: os2.c

perl.1: $(MAN)
	nroff -man $(MAN) >perl.1

install: all
	exepack perl.exe $(DESTDIR)\perl.exe
	exepack glob.exe $(DESTDIR)\glob.exe

clean:
	rm -f *.obj *.exe perl.1 perly.h perl.arp

tags:
	ctags *.c *.h *.xc

dosperl:
	mv $(DOSFILES) ../perl30.new

doskit:
	mv $(DOSFILES) ../os2