1# 2# Makefile.incl is initially empty 3# It gets initialized by "Make OS" 4# 5default: all 6 7include Makefile.incl 8include VERSION 9 10LIBS = $(LIBDIRS) $(CLIBS) $(TLIBS) $(GDLIBS) $(SLIBS) 11DEFINES = $(GDEFS) $(IDEFS) $(TDEFS) $(GDDEFS) $(SDEFS) $(OSDEFS) 12 13FLAGS = $(INCDIRS) $(DEFINES) 14 15PROGS = avs2ps balls rastep render ribbon rings3d rods normal3d 16SCRIPTS = stereo3d worms 17 18clean: 19 rm -f *.o $(PROGS) core *~ 20 rm -f render_small render_small.f parse_small.f qinp_small.f parameters_small.incl 21 rm -f lists.mod 22 $(MAKE) -C examples clean 23 24distclean: clean 25 rm -f Makefile.incl 26 touch Makefile.incl 27 if [ -e aix-patch ] ; then rm -f aix-patch; fi 28 exit 0 29 30help: 31 @if test "$(OS)" ; \ 32 then \ 33 echo "Making Raster3D $(VERSION) for $(OS)" ; \ 34 else \ 35 echo "" ; \ 36 echo "Please start by typing '"make OS"', where OS is one of" ; \ 37 echo " linux linux-pgf77 linux-ifort dec osx-intel osx-fink sun sun-forte irix5 irix6 cygwin aix hpux" ; \ 38 echo "If your OS is not shown but you have gfortran installed, try" ; \ 39 echo " make linux" ; \ 40 echo "" ; \ 41 echo "If all goes well, you can now type 'make' to build the programs" ; \ 42 echo "followed by 'make install' (probably as root) to install them" ;\ 43 exit 1 ; \ 44 fi 45 46# 47# OS-specific initializations 48# 49 50linux: 51 @cp Makefile.template Makefile.incl 52 @echo OS = linux >> Makefile.incl 53 @echo CC = gcc >> Makefile.incl 54 @echo CFLAGS = -g -Wall -Dgfortran >> Makefile.incl 55 @echo FC = gfortran -std=legacy >> Makefile.incl 56 @echo FFLAGS = -g -w -O3 -Wno-tabs -ffixed-line-length-132 >> Makefile.incl 57 @echo RM = /bin/rm -f >> Makefile.incl 58 @echo OSDEFS = -DLINUX -DNETWORKBYTEORDER >> Makefile.incl 59 @echo include Makefile.package >> Makefile.incl 60 @echo >> Makefile.incl 61 @echo qinp.o: qinp.f >> Makefile.incl 62 @echo " \$$(FC) -g -O0 -Wall -Wno-tabs -c -o qinp.o qinp.f" >> Makefile.incl 63 @echo >> Makefile.incl 64 65linux-ifort: 66 @cp Makefile.template Makefile.incl 67 @echo OS = linux >> Makefile.incl 68 @echo CC = gcc >> Makefile.incl 69 @echo CFLAGS = -g -Wall >> Makefile.incl 70 @echo FC = ifort >> Makefile.incl 71 @echo FFLAGS = -g -w -O3 -132 -static-intel >> Makefile.incl 72 @echo RM = /bin/rm -f >> Makefile.incl 73 @echo OSDEFS = -DLINUX -DNETWORKBYTEORDER >> Makefile.incl 74 @echo include Makefile.package >> Makefile.incl 75 76linux-pgf77: 77 @cp Makefile.template Makefile.incl 78 @echo OS = linux-pgf77 >> Makefile.incl 79 @echo CC = gcc >> Makefile.incl 80 @echo CFLAGS = -g -m486 -w >> Makefile.incl 81 @echo FC = pgf77 >> Makefile.incl 82 @echo FFLAGS = -O -Munroll >> Makefile.incl 83 @echo RM = /bin/rm -f >> Makefile.incl 84 @echo OSDEFS = -DLINUX -DNETWORKBYTEORDER >> Makefile.incl 85 @echo include Makefile.package >> Makefile.incl 86 87osx-intel: 88 @cp Makefile.template Makefile.incl 89 @echo OS = osx >> Makefile.incl 90 @echo CC = icc >> Makefile.incl 91 @echo CFLAGS = -g -Wall >> Makefile.incl 92 @echo FC = ifort >> Makefile.incl 93 @echo FFLAGS = -g -w -O3 -Wtabs -132 >> Makefile.incl 94 @echo RM = /bin/rm -f >> Makefile.incl 95 @echo OSDEFS = -DOSX -DNETWORKBYTEORDER >> Makefile.incl 96 @echo include Makefile.package >> Makefile.incl 97 @echo >> Makefile.incl 98 @echo qinp.o: qinp.f >> Makefile.incl 99 @echo " \$$(FC) -g -O0 -w -Wtabs -132 -c -o qinp.o qinp.f" >> Makefile.incl 100 @echo >> Makefile.incl 101 102osx-fink: 103 @cp Makefile.template Makefile.incl 104 @echo .NOTPARALLEL: >> Makefile.incl 105 @echo >> Makefile.incl 106 @echo OS = osx >> Makefile.incl 107 @echo CC = /sw/bin/gcc-4 >> Makefile.incl 108 @echo INCDIRS = -I/sw/include >> Makefile.incl 109 @echo LIBDIRS = -L/sw/lib >> Makefile.incl 110 @echo CFLAGS = -g -Wall -Dgfortran >> Makefile.incl 111 @echo FC = /sw/bin/gfortran >> Makefile.incl 112 @echo FFLAGS = -g -w -O3 -Wtabs -ffixed-line-length-132 >> Makefile.incl 113 @echo RM = /bin/rm -f >> Makefile.incl 114 @echo OSDEFS = -DOSX -DNETWORKBYTEORDER >> Makefile.incl 115 @echo include Makefile.package >> Makefile.incl 116 @echo >> Makefile.incl 117 @echo qinp.o: qinp.f >> Makefile.incl 118 @echo " \$$(FC) -g -O0 -Wall -Wtabs -c -o qinp.o qinp.f" >> Makefile.incl 119 @echo >> Makefile.incl 120 121irix5: 122 @cp Makefile.template Makefile.incl 123 @echo OS=irix5 >> Makefile.incl 124 @echo SHELL=/bin/sh >> Makefile.incl 125 @echo CC = cc >> Makefile.incl 126 @echo CFLAGS = -g -w >> Makefile.incl 127 @echo FC = f77 >> Makefile.incl 128 @echo FFLAGS = -O -Olimit 4500 >> Makefile.incl 129 @echo RM = /bin/rm -f >> Makefile.incl 130 131irix6: 132 @cp Makefile.template Makefile.incl 133 @echo OS=irix6 >> Makefile.incl 134 @echo SHELL=/bin/sh >> Makefile.incl 135 @echo CC = cc -n32 >> Makefile.incl 136 @echo CFLAGS = -g -w >> Makefile.incl 137 @echo FC = f77 >> Makefile.incl 138 @echo FFLAGS = -O -n32 -OPT:Olimit=4500 >> Makefile.incl 139 @echo LDFLAGS = -L/usr/lib32 >> Makefile.incl 140 @echo RM = /bin/rm -f >> Makefile.incl 141 142dec: 143 @cp Makefile.template Makefile.incl 144 @echo OS=dec >> Makefile.incl 145 @echo CC = cc >> Makefile.incl 146 @echo CFLAGS = -O -w >> Makefile.incl 147 @echo FC = f77 >> Makefile.incl 148 @echo FFLAGS = -O -static -fast -r8 >> Makefile.incl 149 @echo RM = /bin/rm -f >> Makefile.incl 150 @echo OSDEFS = -DNETWORKBYTEORDER >> Makefile.incl 151 @echo include Makefile.package >> Makefile.incl 152 153aix: aix-patch 154 @cp Makefile.template Makefile.incl 155 @echo OS=aix >> Makefile.incl 156 @echo CC = cc >> Makefile.incl 157 @echo CFLAGS = -g >> Makefile.incl 158 @echo FC = xlf -qqcount -w >> Makefile.incl 159 @echo FFLAGS = -O -qtkq_size=2000 -qintlog -qsave >> Makefile.incl 160 @echo LDFLAGS = -lz -bloadmap:loadmap.lis >> Makefile.incl 161 @echo RM = /bin/rm -f >> Makefile.incl 162 @echo OSDEFS = -Dlocal_=local -Dungz_=ungz >> Makefile.incl 163aix-patch: 164 patch render.f < render_patch.aix 165 mv render.f.orig render.f.bak 166 @touch aix-patch 167 168sun: 169 @cp Makefile.template Makefile.incl 170 @echo OS = sun >> Makefile.incl 171 @echo CC = gcc >> Makefile.incl 172 @echo CFLAGS = -O >> Makefile.incl 173 @echo FC = g77 >> Makefile.incl 174 @echo FFLAGS = -O >> Makefile.incl 175 @echo RM = /bin/rm -f >> Makefile.incl 176 @echo LDFLAGS = -L/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.3_U1/2.6.2 -lgcc >> Makefile.incl 177 178sun-forte: 179 @cp Makefile.template Makefile.incl 180 @echo OS = sun >> Makefile.incl 181 @echo CC = cc >> Makefile.incl 182 @echo CFLAGS = -fast -`fpversion -foption` >> Makefile.incl 183 @echo FC = f77 >> Makefile.incl 184 @echo FFLAGS = \${CFLAGS} >> Makefile.incl 185 @echo RM = /bin/rm -f >> Makefile.incl 186 187 188# 189# These source files are dependent on parameters.incl 190# 191FINCLS = render.o parse.o quadric.o normal3d.o 192$(FINCLS): parameters.incl 193 194# 195# Actually build the programs 196# 197 198all: help $(PROGS) 199 200avs2ps: avs2ps.c 201 $(CC) $(CFLAGS) $(FLAGS) $(LDFLAGS) -o avs2ps avs2ps.c -lm 202 203balls: balls.f 204 $(FC) $(FFLAGS) $(LDFLAGS) -o balls balls.f 205 206local.o: Makefile.incl local.c 207 $(CC) $(CFLAGS) $(FLAGS) -c local.c 208 209ungz.o: Makefile.incl ungz.c 210 $(CC) $(CFLAGS) $(GDEFS) $(OSDEFS) -c ungz.c 211 212ribbon: ribbon.f ribbon1.f modsubs.f 213 $(FC) $(FFLAGS) $(LDFLAGS) \ 214 ribbon.f ribbon1.f modsubs.f -o ribbon 215 216rastep: rastep.f quadric.o suv.o 217 $(FC) $(FFLAGS) \ 218 rastep.f quadric.o suv.o $(LDFLAGS) \ 219 -o rastep 220 221render: render.o local.o quadric.o parse.o r3dtogd.o ungz.o qinp.o 222 $(FC) $(FFLAGS) \ 223 render.o local.o quadric.o parse.o r3dtogd.o ungz.o \ 224 qinp.o \ 225 $(LIBS) $(LDFLAGS) \ 226 -o render 227 228normal3d: normal3d.o quadric.o qinp.o ungz.o parameters.incl 229 $(FC) $(FFLAGS) \ 230 normal3d.o quadric.o ungz.o qinp.o $(LDFLAGS) \ 231 -o normal3d 232 233stereo3d: 234 235# 236# Install 237# 238install: all 239 if [ ! -e $(prefix) ] ; then mkdir -p $(prefix) ; fi 240 if [ ! -e $(bindir) ] ; then mkdir -p $(bindir) ; fi 241 chmod 755 $(PROGS); cp $(PROGS) $(bindir) 242 chmod 755 $(SCRIPTS); cp $(SCRIPTS) $(bindir) 243 if [ ! -e $(datadir) ] ; then mkdir -p $(datadir) ; fi 244 cp materials/* $(datadir) 245 if [ ! -e $(mandir) ] ; then mkdir -p $(mandir) ; fi 246 cp doc/*.l $(mandir) 247 if [ ! -e $(htmldir) ] ; then mkdir -p $(htmldir) ; fi 248 cp html/* $(htmldir) 249 if [ ! -e $(examdir) ] ; then mkdir -p $(examdir) ; fi 250 if [ ! -e $(examdir)/msms ] ; then mkdir -p $(examdir)/msms ; fi 251 cp -R examples/* $(examdir) 252 @echo "" 253 @echo " ********************************************" 254 @echo " * The examples subdirectory contains input *" 255 @echo " * scripts to verify your installation and *" 256 @echo " * to serve as examples of use. *" 257 @echo " ********************************************" 258 259tests: all render_small 260 $(MAKE) -C examples 261 $(MAKE) -j1 -C examples compare 262 263example1.png: render_small 264 ./render_small 265 266render_small: render_small.o local.o quadric.o parse_small.o r3dtogd.o ungz.o qinp_small.o 267 $(FC) $(FFLAGS) $^ $(LIBS) $(LDFLAGS) -o $@ 268 269.SUFFIXES: .incl 270SMALL=10 271parameters_small.incl: parameters.incl 272 sed 's/PARAMETER *(MAXOBJ *=.*)/PARAMETER (MAXOBJ=$(SMALL))/;' $< \ 273 | sed 's/PARAMETER *(MAXDET *=.*)/PARAMETER (MAXDET=$(SMALL),MAXSDT=$(SMALL))/;' \ 274 | sed 's/PARAMETER *(MAXSHR *=.*)/PARAMETER (MAXSHR=$(SMALL),MAXSSL=$(SMALL))/;' \ 275 > $@ 276 277render_small.o parse_small.o qinp_small.o: parameters_small.incl 278 279render_small.f parse_small.f qinp_small.f: %_small.f: %.f 280 sed 's/parameters.incl/parameters_small.incl/;' $< >$@ 281 282