1$!========================================================================
2$!
3$! Name      : MAKEVMS
4$!
5$! Purpose   : Compile TIFF library
6$!
7$! Arguments : If P1 is DEBUG, compile with debug
8$!
9$! Created   1-DEC-1994   Karsten Spang
10$!
11$!========================================================================
12$   CURRENT_DIR=F$ENVIRONMENT("DEFAULT")
13$   ON CONTROL_Y THEN GOTO EXIT
14$   ON ERROR THEN GOTO EXIT
15$!
16$! Get hold on definitions
17$!
18$!  Older versions of VMS may not recoqnize the "ARCH_NAME" keyword
19$!  This happens only on VAX
20$!
21$   SAVE_MESS=F$ENVIRONMENT("MESSAGE")
22$   SET MESSAGE/NOID/NOFAC/NOSEV/NOTEXT
23$   ARCH=F$GETSYI("ARCH_NAME")
24$   SET MESSAGE 'SAVE_MESS'
25$   IF F$TYPE(ARCH).EQS."" THEN ARCH="VAX"
26$   ARCH=F$EDIT(ARCH,"UPCASE")
27$!
28$   DEFINE/NOLOG SYS SYS$LIBRARY
29$   THIS_FILE=F$ENVIRONMENT("PROCEDURE")
30$   PROC_NAME=F$PARSE(THIS_FILE,,,"NAME","SYNTAX_ONLY")
31$   THIS_DIR=F$PARSE(THIS_FILE,,,"DEVICE","SYNTAX_ONLY")+ -
32        F$PARSE(THIS_FILE,,,"DIRECTORY","SYNTAX_ONLY")
33$   SET DEFAULT 'THIS_DIR'
34$   IF ARCH.EQS."ALPHA"
35$   THEN
36$       CONF_FP="HAVE_IEEEFP=1"
37$   ELSE
38$       CONF_FP="HAVE_IEEEFP=0"
39$   ENDIF
40$   CONF_LIBRARY="BSDTYPES,HAVE_MMAP"
41$   IF P1.EQS."DEBUG"
42$   THEN
43$       DEBUG_OPTIONS="/DEBUG/NOOPTIMIZE"
44$       CONF_LIBRARY=CONF_LIBRARY+",DEBUG"
45$       LINK_OPTIONS="/DEBUG"
46$   ELSE
47$       DEBUG_OPTIONS=""
48$       LINK_OPTIONS=""
49$   ENDIF
50$   DEFINES="/DEFINE=("+CONF_FP+","+CONF_LIBRARY+")"
51$   C_COMPILE="CC"+DEBUG_OPTIONS+DEFINES
52$   IF ARCH.EQS."ALPHA"
53$   THEN
54$!
55$!      You may want a different floating point option
56$!
57$       C_COMPILE=C_COMPILE+ -
58            "/FLOAT=IEEE_FLOAT/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES"
59$   ENDIF
60$!
61$   SOURCES="TIF_AUX,TIF_CLOSE,TIF_CODEC,TIF_COMPRESS,"+ -
62        "TIF_DIR,TIF_DIRINFO,TIF_DIRREAD,TIF_DIRWRITE,"+ -
63        "TIF_DUMPMODE,TIF_ERROR,TIF_FAX3,TIF_FAX3SM,TIF_FLUSH,TIF_GETIMAGE,"+ -
64-!        "TIF_JPEG,"+ -
65        "TIF_LZW,TIF_NEXT,TIF_OPEN,TIF_PACKBITS,TIF_PIXARLOG,TIF_PREDICT,"+ -
66        "TIF_PRINT,TIF_READ,TIF_STRIP,TIF_SWAB,TIF_THUNDER,TIF_TILE,"+ -
67        "TIF_VERSION,TIF_VMS,TIF_WARNING,TIF_WRITE"
68! ",TIF_ZIP"
69$   LIBFILE="TIFF"
70$   IF F$SEARCH(LIBFILE+".OLB").EQS."" THEN -
71        LIBRARY/CREATE 'LIBFILE'
72$!
73$! Create the port library
74$!
75$   LIBPORT="[-.PORT]PORT"
76$   IF F$SEARCH(LIBPORT+".OLB") .EQS ""
77$   THEN
78$       WRITE SYS$OUTPUT "Creating PORT.OLB"
79$       LIBRARY/CREATE 'LIBPORT'
80$       CREATE DUM.C
81main(){getopt();strtoul();strcasecmp();}
82$       C_COMPILE DUM
83$       SET MESSAGE/ID/FAC/SEV/TEXT
84$       DEFINE/USER SYS$OUTPUT LINK.WARNINGS
85$       DEFINE/USER SYS$ERROR NLA0:
86$       IF ARCH.EQS."ALPHA"
87$       THEN
88$           LINK DUM
89$       ELSE
90$           LINK DUM,SYS$INPUT:/OPTIONS
91SYS$SHARE:VAXCRTL/SHARE
92$       ENDIF
93$       DELETE DUM.C;,DUM.OBJ;,DUM.EXE;
94$       SEARCH/OUT=MISSING.OBJECTS LINK.WARNINGS LINK-I-UDFSYM
95$       DELETE LINK.WARNINGS;
96$       OPEN/READ MISSING MISSING.OBJECTS
97$NEXTMIS:
98$           READ/END=NOMOREMIS MISSING LINE
99$           LINE=F$EDIT(LINE,"TRIM,COMPRESS,UPCASE")
100$           LINE=F$ELEMENT(1," ",LINE)
101$           IF LINE .EQS. " " THEN GOTO NEXTMIS
102$           WRITE SYS$OUTPUT "   "+LINE
103$           C_COMPILE/OBJECT=[-.PORT]'LINE' [-.PORT]'LINE'
104$           LIBRARY 'LIBPORT' [-.PORT]'LINE'
105$           DELETE [-.PORT]'LINE'.OBJ;
106$       GOTO NEXTMIS
107$NOMOREMIS:
108$       CLOSE MISSING
109$       DELETE MISSING.OBJECTS;
110$   ENDIF
111$!
112$! Create VERSION.H
113$!
114$   IF F$SEARCH("VERSION.H").EQS.""
115$   THEN
116$       WRITE SYS$OUTPUT "Creating VERSION.H"
117$       IF F$SEARCH("MKVERSION.EXE").EQS.""
118$       THEN
119$           IF F$SEARCH("MKVERSION.OBJ").EQS.""
120$           THEN
121$               C_COMPILE MKVERSION
122$           ENDIF
123$           IF ARCH.EQS."ALPHA"
124$           THEN
125$               LINK MKVERSION,'LIBPORT'/LIBRARY
126$           ELSE
127$               LINK MKVERSION,'LIBPORT'/LIBRARY,SYS$INPUT:/OPTIONS
128SYS$SHARE:VAXCRTL/SHARE
129$           ENDIF
130$           DELETE MKVERSION.OBJ;*
131$       ENDIF
132$       MKVERSION:=$'THIS_DIR'MKVERSION
133$       MKVERSION -V [-]VERSION -A [-.DIST]TIFF.ALPHA VERSION.H
134$       DELETE MKVERSION.EXE;*
135$   ENDIF
136$!
137$! Create TIF_FAX3SM.C
138$!
139$   IF F$SEARCH("TIF_FAX3SM.C").EQS.""
140$   THEN
141$       WRITE SYS$OUTPUT "Creating FAX3SM.C"
142$       IF F$SEARCH("MKG3STATES.EXE").EQS.""
143$       THEN
144$           IF F$SEARCH("MKG3STATES.OBJ").EQS.""
145$           THEN
146$               C_COMPILE MKG3STATES
147$           ENDIF
148$           IF ARCH.EQS."ALPHA"
149$           THEN
150$               LINK MKG3STATES,'LIBPORT'/LIBRARY
151$           ELSE
152$               LINK MKG3STATES,'LIBPORT'/LIBRARY,SYS$INPUT:/OPTIONS
153SYS$SHARE:VAXCRTL/SHARE
154$           ENDIF
155$           DELETE MKG3STATES.OBJ;*
156$       ENDIF
157$       MKG3STATES:=$'THIS_DIR'MKG3STATES
158$       MKG3STATES -c const TIF_FAX3SM.C
159$       DELETE MKG3STATES.EXE;*
160$   ENDIF
161$!
162$! Loop over modules
163$!
164$   NUMBER=0
165$COMPILE_LOOP:
166$       FILE=F$ELEMENT(NUMBER,",",SOURCES)
167$       IF FILE.EQS."," THEN GOTO END_COMPILE
168$       C_FILE=F$PARSE(FILE,".C",,,"SYNTAX_ONLY")
169$       C_FILE=F$SEARCH(C_FILE)
170$       IF C_FILE.EQS.""
171$       THEN
172$           WRITE SYS$OUTPUT "Source file "+FILE+" not found"
173$           GOTO EXIT
174$       ENDIF
175$       C_DATE=F$CVTIME(F$FILE_ATTRIBUTES(C_FILE,"RDT"))
176$       OBJ_FILE=F$PARSE("",".OBJ",C_FILE,,"SYNTAX_ONLY")
177$       OBJ_FILE=F$EXTRACT(0,F$LOCATE(";",OBJ_FILE),OBJ_FILE)
178$       FOUND_OBJ_FILE=F$SEARCH(OBJ_FILE)
179$       IF FOUND_OBJ_FILE.EQS.""
180$       THEN
181$           OBJ_DATE=""
182$       ELSE
183$           OBJ_DATE=F$CVTIME(F$FILE_ATTRIBUTES(FOUND_OBJ_FILE,"CDT"))
184$       ENDIF
185$       IF OBJ_DATE.LTS.C_DATE
186$       THEN
187$           WRITE SYS$OUTPUT "Compiling "+FILE
188$           ON ERROR THEN CONTINUE
189$           C_COMPILE/OBJECT='OBJ_FILE' 'C_FILE'
190$           ON ERROR THEN GOTO EXIT
191$           LIBRARY 'LIBFILE' 'OBJ_FILE'
192$
193$       ENDIF
194$       NUMBER=NUMBER+1
195$   GOTO COMPILE_LOOP
196$END_COMPILE:
197$   IF ARCH.EQS."ALPHA"
198$   THEN
199$       OPT_FILE="TIFFSHRAXP"
200$   ELSE
201$       OPT_FILE="TIFFSHRVAX"
202$       FILE="TIFFVEC"
203$       MAR_FILE=F$PARSE(FILE,".MAR",,,"SYNTAX_ONLY")
204$       MAR_FILE=F$SEARCH(MAR_FILE)
205$       MAR_FILE=F$SEARCH("TIFFVEC.MAR")
206$       MAR_DATE=F$CVTIME(F$FILE_ATTRIBUTES(MAR_FILE,"RDT"))
207$       OBJ_FILE=F$PARSE("",".OBJ",MAR_FILE,,"SYNTAX_ONLY")
208$       OBJ_FILE=F$EXTRACT(0,F$LOCATE(";",OBJ_FILE),OBJ_FILE)
209$       FOUND_OBJ_FILE=F$SEARCH(OBJ_FILE)
210$       IF FOUND_OBJ_FILE.EQS.""
211$       THEN
212$           OBJ_DATE=""
213$       ELSE
214$           OBJ_DATE=F$CVTIME(F$FILE_ATTRIBUTES(FOUND_OBJ_FILE,"CDT"))
215$       ENDIF
216$       IF OBJ_DATE.LTS.MAR_DATE
217$       THEN
218$           WRITE SYS$OUTPUT "Compiling "+FILE
219$           MACRO 'MAR_FILE'
220$           LIBRARY 'LIBFILE' 'OBJ_FILE'
221$           PURGE 'OBJ_FILE'
222$       ENDIF
223$   ENDIF
224$   WRITE SYS$OUTPUT "Creating shareable library"
225$   LINK/SHAREABLE='THIS_DIR'TIFFSHR'LINK_OPTIONS' 'OPT_FILE'/OPTIONS
226$   PURGE/LOG TIFFSHR.EXE
227$EXIT:
228$   SET DEFAULT 'CURRENT_DIR'
229$   EXIT
230