1#------------------------------------------------------------------------------
2#
3#  NSSDC/CDF						CDF library makefile.
4#
5#  Version 1.5b, 3-Apr-97, Hughes STX.
6#
7#  Modification history:
8#
9#   V1.0  15-Dec-93, J Love	Original version.
10#   V1.0a 23-Feb-94, J Love	Added `CC='.
11#   V1.0b  6-Apr-94, J Love	Finished `CC='.
12#   V1.1  14-Nov-94, J Love	CDF V2.5.
13#   V1.2  30-Dec-94, J Love	Corrected dependencies.
14#   V1.2a 19-Jan-95, J Love	IRIX 6.x.
15#   V1.3  16-Mar-95, J Love	Multi-compiler support, etc.
16#   V1.4   3-Apr-95, J Love	POSIX.
17#   V1.4a  4-May-95, J Love	Added `cdfmem.c'.
18#   V1.5  13-Jun-96, J Love	CDF V2.6.
19#   V1.5a 21-Feb-97, J Love	Removed RICE.
20#   V1.5b  3-Apr-97, J Love	Removed mysterious `-M' option.
21#
22#------------------------------------------------------------------------------
23#
24# Notes:
25#
26# `make' on DECstations complains (prints an error message) if an if-then-else
27# construct evaluates to FALSE but there is no `false' part.  To prevent this,
28# the `NULL' command is executed as the `false' part.
29#
30#------------------------------------------------------------------------------
31
32.SILENT:
33
34SHELL=/bin/sh
35NULL=true
36
37SHARED=
38PIC=
39CCx=
40LDx=
41COPTIONS=
42SYSLIBS=
43SHAREDEXT=
44LDOPTIONS=
45AROPTIONS=
46RANLIB=
47
48INCLUDEcdf=../include
49
50CC=$(CCx)
51LD=$(LDx)
52AR=ar
53RANLIBcmd=ranlib
54MACos=Darwin
55
56CFLAGS=$(COPTIONS) $(PIC) -I$(INCLUDEcdf)
57LDFLAGS=$(LDOPTIONS)
58ARFLAGS=$(AROPTIONS)
59
60OBJs= \
61cdflib.o cdfcre.o cdfope.o cdfclo.o cdfdel.o cdfsel.o cdfcon.o \
62cdfget.o cdfmisc2.o cdfread.o cdfwrite.o cdfhyper.o epochuf.o dirutils.o \
63cdfput1.o cdfput2.o cdfcsi.o cdffsi.o cdffii.o cdftext.o cdfed.o \
64cdfstr.o cdfvalid.o cdfmem.o vstream.o epochu.o cdfmisc3.o cdfhuff.o \
65cdfrle.o cdfmisc1.o cdfalloc.o cdfgzip.o cdfalloc64.o cdfdel64.o cdfmisc2_64.o \
66cdfread64.o cdfclo64.o cdfget64.o cdfmisc3_64.o cdfsel64.o cdfcon64.o \
67cdfput1_64.o cdfwrite64.o cdfcre64.o cdfmisc1_64.o cdfput2_64.o vstream64.o \
68cdfhyper64.o cdfrle64.o cdfhuff64.o cdfgzip64.o cdffsi2.o cdffsi3.o cdfcks.o \
69cdfmd5.o cdfsav.o cdfvalidator.o cdfvalidator64.o
70
71CDFh= $(INCLUDEcdf)/cdf.h
72CDFREVh= $(INCLUDEcdf)/cdfrev.h
73CONFIGh= $(INCLUDEcdf)/cdfconfig.h
74CDFDISTh= $(INCLUDEcdf)/cdfdist.h $(CDFh) $(CONFIGh)
75CDFLIBh= $(INCLUDEcdf)/cdflib.h $(INCLUDEcdf)/cdflib64.h $(CDFDISTh)
76CDFMD5h = $(CDFLIBh) $(INCLUDEcdf)/cdfmd5.h
77
78#------------------------------------------------------------------------------
79# Compile/link.
80#------------------------------------------------------------------------------
81
82all: libcdf.a shared.$(SHARED)
83
84libcdf.a: $(OBJs)
85	@if [ -f $@ ] ; then rm $@ ; else $(NULL) ; fi
86	@echo $(AR) $(ARFLAGS) $@ $(OBJs)
87	      $(AR) $(ARFLAGS) $@ $(OBJs)
88	@make ranlib.$(RANLIB)
89
90ranlib.yes:
91	@echo $(RANLIBcmd) libcdf.a
92	$(RANLIBcmd) libcdf.a
93#	@cp .ranlib .ranlib.yes
94
95shared.yes: libcdf.$(SHAREDEXT)
96
97libcdf.so \
98libcdf.dylib \
99libcdf.sl: $(OBJs)
100	@if [ -f $@ ] ; then rm $@ ; else $(NULL) ; fi
101	if [ $(MACos) =  `uname` ] ; then \
102	  echo $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS); \
103	       $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS); \
104	else \
105	  echo $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS); \
106	       $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS); \
107	fi
108
109libcdf.o: $(OBJs)
110	@echo $(CC) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
111	      $(CC) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
112
113.c.o:
114	@echo $(CC) $(CFLAGS) -c $<
115#	      $(CC) -ggdb $(CFLAGS) -c $<
116	      $(CC) $(CFLAGS) -c $<
117
118cdflib.o:	cdflib.c $(CDFLIBh)
119cdfcre.o:	cdfcre.c $(CDFLIBh) $(CDFREVh)
120cdfope.o:	cdfope.c $(CDFLIBh) $(CDFREVh)
121cdfdel.o:	cdfdel.c $(CDFLIBh)
122cdfclo.o:	cdfclo.c $(CDFLIBh)
123cdfget.o:	cdfget.c $(CDFLIBh) $(CDFREVh)
124cdfput1.o:	cdfput1.c $(CDFLIBh)
125cdfput2.o:	cdfput2.c $(CDFLIBh)
126cdfsel.o:	cdfsel.c $(CDFLIBh)
127cdfcon.o:	cdfcon.c $(CDFLIBh)
128cdfwrite.o:	cdfwrite.c $(CDFLIBh)
129cdfread.o:	cdfread.c $(CDFLIBh)
130cdfmisc1.o:	cdfmisc1.c $(CDFLIBh) $(CDFREVh)
131cdfmisc2.o:	cdfmisc2.c $(CDFLIBh)
132cdfmisc3.o:	cdfmisc3.c $(CDFLIBh)
133cdfalloc.o:	cdfalloc.c $(CDFLIBh) $(CDFREVh)
134cdftext.o:	cdftext.c $(CDFLIBh)
135cdfcsi.o:	cdfcsi.c $(CDFLIBh)
136cdffsi.o: 	cdffsi.c $(CDFLIBh)
137cdffsi2.o:	cdffsi2.c $(CDFLIBh)
138cdffsi3.o:	cdffsi3.c $(CDFLIBh)
139cdffii.o: 	cdffii.c $(CDFLIBh)
140cdfstr.o:	cdfstr.c $(CDFLIBh)
141cdfed.o:  	cdfed.c $(CDFLIBh)
142cdfvalid.o:  	cdfvalid.c $(CDFLIBh)
143cdfhyper.o:	cdfhyper.c $(CDFLIBh)
144cdfhyper64.o:	cdfhyper64.c $(CDFLIBh)
145cdfmem.o:	cdfmem.c $(CDFLIBh)
146cdfhuff.o:	cdfhuff.c $(CDFLIBh)
147cdfrle.o:	cdfrle.c $(CDFLIBh)
148cdfgzip.o:	cdfgzip.c $(CDFLIBh)
149epochu.o:	epochu.c $(CDFLIBh)
150epochuf.o:	epochuf.c $(CDFLIBh)
151dirutils.o:	dirutils.c $(CDFLIBh)
152vstream.o:	vstream.c $(CDFLIBh)
153cdfalloc64.o:	cdfalloc64.c $(CDFLIBh) $(CDFREVh)
154cdfclo64.o:	cdfclo64.c $(CDFLIBh)
155cdfcon64.o:	cdfcon64.c $(CDFLIBh)
156cdfcre64.o:	cdfcre64.c $(CDFLIBh) $(CDFREVh)
157cdfdel64.o:	cdfdel64.c $(CDFLIBh)
158cdfget64.o:	cdfget64.c $(CDFLIBh) $(CDFREVh)
159cdfput1_64.o:	cdfput1_64.c $(CDFLIBh)
160cdfput2_64.o:	cdfput2_64.c $(CDFLIBh)
161cdfmisc1_64.o:	cdfmisc1_64.c $(CDFLIBh) $(CDFREVh)
162cdfmisc2_64.o:	cdfmisc2_64.c $(CDFLIBh)
163cdfmisc3_64.o:	cdfmisc3_64.c $(CDFLIBh)
164cdfread64.o:	cdfread64.c $(CDFLIBh)
165cdfsel64.o:	cdfsel64.c $(CDFLIBh)
166cdfwrite64.o:	cdfwrite64.c $(CDFLIBh)
167vstream64.o:	vstream64.c $(CDFLIBh)
168cdfhuff64.o:	cdfhuff64.c $(CDFLIBh)
169cdfrle64.o:	cdfrle64.c $(CDFLIBh)
170cdfgzip64.o:	cdfgzip64.c $(CDFLIBh)
171cdfcks.o:	cdfcks.c $(CDFLIBh) $(CDFMD5h)
172cdfmd5.o:	cdfmd5.c $(CDFLIBh) $(CDFMD5h)
173cdfsav.o:	cdfsav.c $(CDFLIBh)
174cdfvalidator.o:	cdfvalidator.c $(CDFLIBh)
175cdfvalidator64.o:	cdfvalidator64.c $(CDFLIBh)
176
177ranlib.no:
178shared.no:
179
180#------------------------------------------------------------------------------
181# Clean/purge.
182#------------------------------------------------------------------------------
183
184clean:
185	@-rm -f *.o
186	@-rm -f core
187	@-rm -f libcdf.a
188	@-rm -f libcdf.so
189	@-rm -f libcdf.sl
190	@-rm -f libcdf.dylib
191
192purge:
193	@-rm -f *~
194	@-rm -f *#
195