1# 2# You have to toy with the value of COLOR_OFFSET 3# (0.0 <= COLOR_OFFSET <= 1.0) it reflects the darkness 4# of the shaded plots, this can vary over X-servers 5# (You can always override it with the command line flag -c0.25) 6# 7# The queue names for the submit job part can be compiled in 8# by using -DDOQUEUE 9# You have to edit xwin.c to customise the queunames and times. 10# 11# You can add the mpfit module by typing 'make molden.mpfit' 12# 13# Disregard compiler warnings on rdmolf.f 14# 15# 16#CC = cc 17LIBS = -lX11 -lm 18LDR = ${FC} 19LIBSG = -L/usr/local/lib -lGLU -lGL -lX11 -lm 20ARCH := $(shell getconf LONG_BIT) 21AFLAG= -m$(ARCH) 22EXTEN= 23EXTENZ= 24EXTRAZ= 25 26empty := 27choosefc := 28EXT := 29uname := $(shell uname -s) 30os := 31 32ifeq ($(uname), Linux) 33 os := $(shell head -n 1 /etc/issue | cut -d" " -f1) 34 ifeq ($(os), Ubuntu) 35 EXTEN = exten 36 EXTENZ = exten2 37 LIBSG = -L/usr/local/lib -lGLU -lGL -lX11 -lm 38 endif 39 ifeq ($(os), Debian) 40 LIBSG = -L/usr/lib/X11 -lGLU -lGL -lX11 -lm 41 endif 42 43 choosefc := 'yes' 44endif 45 46ifneq (,$(findstring CYGWIN,$(uname))) 47 uname := Linux 48 choosefc := 'yes' 49endif 50 51ifeq ($(uname), Darwin) 52 choosefc := 'yes' 53endif 54 55 56ifneq ($(choosefc), $(empty)) 57 comg77 := $(shell which g77 | grep -i g77) 58 comgfort := $(shell which gfortran | grep -i gfortran) 59 ifneq ($(comg77), $(empty)) 60 FC = g77 61 endif 62 ifneq ($(comgfort), $(empty)) 63 FC = gfortran 64 endif 65endif 66 67print-% : ; @echo $* = $($*) 68# 69# Linux version 70# 71# Make sure the Xwindow include files are installed in an rpm package 72# called libX11-devel-* 73# For gmolden you also need the OpenGL include files contained in the 74# rpm packages mesa-libGL-devel* and mesa-libGLU-devel-* 75# 76# For optimisation you can try adding the following options to 77# CFLAGS & FFLAGS (Bjoern Pedersen): 78# 79# -O2 -malign-double -fomit-frame-pointer -funroll-loops 80# 81# On 64-bit Alpha-Linux add -mieee to the FFLAGS 82# 83# when using ggc3 instead of gcc2 add to CFLAGS: -traditional-cpp 84# 85# when using gfortran, replace g77 with gfortran and with some versions of the 86# gfortran compiler, comment out the line 87# 'external iargc' in molden.f 88# with GCC4.0 or higher replace the line with: 89# 'external gfortran_iargc' 90# 91 92ifeq ($(uname), Linux) 93#CC = gcc 94comgcc := $(shell gcc --version | grep 5.4) 95ifneq ($(comgcc), $(empty)) 96 EXTRAZ = -Wno-implicit-function-declaration 97 EXT = ${EXTRAZ} 98endif 99FFLAGS = -g ${AFLAG} 100LIBS = -L/usr/local/lib -lX11 -lm 101ifeq ($(AFLAG),"-m64") 102LIBS = -L/usr/local/lib64 -lX11 -lm 103endif 104LDR = ${FC} -g ${AFLAG} 105CFLAGS = ${AFLAG} ${EXTRAZ} -c -g -I/usr/local/include -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 106 ifeq ($(os), Debian) 107 CFLAGS = ${AFLAG} ${EXTRAZ} -c -I/usr/include/X11 -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 108 LIBS = -L/usr/lib/X11 -lX11 -lm 109 ifeq ($(AFLAG),"-m64") 110 LIBS = -L/usr/local/lib64 -lX11 -lm 111 endif 112 endif 113ifeq ($(os), FreeBSD) 114CFLAGS = ${CFLAGS} -DFREEBSD 115endif 116endif 117 118ifeq ($(uname), Darwin) 119# 120# Mac OS X g77 121# 122CC=cc 123CFLAGS= -std=gnu89 -Wno-return-type -DDARWIN -I/usr/local/include -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 124EXT= -std=gnu89 -Wno-return-type -DDARWIN ${EXTRAZ} 125FFLAGS=-O3 -funroll-loops 126LIBS = -L/usr/local/lib -lX11 -lm 127LIBSG = -L/usr/local/lib -lGLU "-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib" -lGL -lX11 -lm 128LDR = ${FC} 129endif 130 131# Silicon Graphics 132#CFLAGS = -c -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 133#FFLAGS = 134#LDR = f77 135 136# Ultrix, Dec Alpha ( and best start for Unix other than below ) 137# 138# on linux you some times need to add -Nx400 option to FFLAGS 139# 140#CFLAGS = -c -DDOBACK -DHASTIMER 141#FFLAGS = 142#LDR = f77 143 144# 145# Mac OS X Absoft Pro Fortran 8.0 146# 147#CC=cc -O2 -DHASTIMER -DDOBACK -DDARWIN -I/usr/local/include 148#FC=f77 149#FFLAGS= -B18 -O3 -f -N15 -s 150#LIBS = -L/usr/local/lib -lX11 -lm -lf90math -lfio -lf77math -lU77 151#LDR= ${FC} 152 153# 154# Mac OS X IBM XLF 8.1 155# 156#CC=cc -O2 -DHASTIMER -DDOBACK -DDARWIN -I/usr/local/include 157#FC=xlf 158#FFLAGS= -O3 -qtune=auto -qarch=auto -qextname 159#LIBS = -L/usr/local/lib -lX11 -lm 160#LDR= ${FC} 161 162# 163# an 64-bit Alpha-Linux system with the Compaq Fortran and C/C++ compilers 164# 165#CC = ccc 166#CFLAGS = -std0 -c -I/usr/local/include -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 167#FC = fort 168#FFLAGS = 169#LIBS = -L/usr/local/lib -lX11 -lmcheck 170#LDR = ${FC} 171# 172 173# AIX 174# 175#CFLAGS = -c -D DOBACK -D UNDERSC -D HASTIMER 176#FFLAGS = 177#LDR = f77 178 179# SUN (on the Sun: use "limit datasize 20M" if not enough memory) 180#CFLAGS = -c -DDOBACK -DHASTIMER 181##CFLAGS = -c -DDOBACK -DHASTIMER -I/usr/openwin/include 182#FFLAGS = -Nl90 183#LDR = f77 184 185# SUN SOLARIS 186#LIBS = -L/usr/openwin/lib -lX11 -lm 187#CFLAGS = -c -DDOBACK -DHASTIMER -I/usr/openwin/include 188#FFLAGS = -Nl90 189#LDR = f77 190 191# Cray 192# To Prevent the cray compiler to do stupid things, added -O0 193#CFLAGS = -D DOBACK -D CRAY 194#FFLAGS = -O0 -Wf"-dp" 195# If you are using F90 (fortran 90) use: 196#FFLAGS = -O0 -d p -e 0 197#LDR = segldr 198 199# HP-UX 200# Try any of the follwing two: 201# 202#LIBS = -lU77 -lX11 -lm 203#CFLAGS = -c -O -D DOBACK -D HASTIMER -D UNDERSC 204#FC = fort77 205#FFLAGS = -O +U77 206#LDR = ${FC} 207#### 208#LIBS = -lU77 -lX11 -lm 209#CFLAGS = -Ae -c +DAportable -D DOBACK -D HASTIMER -D UNDERSC 210#FC = f77 211#FFLAGS = -O +U77 +DAportable 212#LDR = ${FC} +DAportable 213 214# Convex SPP-100 215# 216#LIBS = -lU77 -L/usr/lib/X11R5 -lX11 -lm 217#CFLAGS = -c -O -DDOBACK -DUNDERSC -I/usr/include/X11R5 218#FC = fort77 219#FFLAGS = -O +U77 220#LDR = fort77 221 222 223OBJS = atomdens.o molden.o above.o actcal.o basprt.o calc.o \ 224 caldis.o calfa.o cntour.o cnvgam.o cnvgau.o convzmat.o cross.o \ 225 crprod.o datin.o defpc.o defrad.o del.o denmak.o densmat.o \ 226 distot.o dmat.o docent.o draw.o \ 227 euler.o eulerh.o files.o fndcal.o gampoi.o gaupoi.o gaussian.o \ 228 geogam.o geogau.o getmul.o getpoi.o getreal.o gmmcnv.o grdcal.o \ 229 gstr.o hidedr.o impsc.o locatc.o maxmin.o mdout.o mmcnv.o \ 230 mopaco.o mopin.o mulprt.o occin.o oriin.o parang.o pareul.o \ 231 parfc.o parori.o parpla.o parstp.o planky.o plend.o plini.o \ 232 plmol.o plotgh.o plotgr.o plotin.o plpost.o prev.o proato.o \ 233 procnv.o progeo.o rdbas.o rdcor.o rdgam.o rdgaus.o rdinfo.o \ 234 rdpdb.o rdvect.o reada.o readel.o readvv.o renorm.o rmomen.o \ 235 rota.o rotatg.o rotb.o rotc.o rotcor.o rotd.o rotfir.o rotm.o \ 236 rotmom.o scback.o search.o searchd.o setang.o setbas.o \ 237 settc.o shsort.o site.o slater.o stoc.o tessa.o tk4014.o \ 238 tocap.o tocapf.o tomold.o under.o vaxdum.o vclr.o vec.o vlen.o \ 239 vsc1.o wrinfo.o zread.o samino.o prtcal.o actss.o actami.o \ 240 plden.o heaps.o den3d.o dencnt.o plhead.o pltab.o eucmol.o pl3dm.o \ 241 plbox.o selsol.o atmd.o dolift.o spaced.o snypnt.o eulstr.o \ 242 calct.o coeffs.o epint.o espot.o fcij.o fmt.o genaos.o rys.o \ 243 ryspol.o rysrot.o thrcen.o twocen.o ifblen.o rott.o plmolp.o \ 244 wrzmat.o rdchx.o obin.o pred.o gargpl.o inferr.o freqs.o getmop.o \ 245 brklin.o getzm.o xyzcoo.o geomop.o dumzm.o getxyz.o espchrg.o \ 246 proxim.o rdgamu.o plvrml.o molsint.o runjob.o rdmsf.o wrmsf.o \ 247 rdmolf.o adf_fun.o rotpol.o extbas.o rdcpmd.o eem.o asspmf.o srfcal.o \ 248 rdqchm.o rdorca.o rdmaux.o rdnwch.o 249 250DOBJ = dummys.o dummyc.o 251 252# 253# For The OpenGL Graphics library molden helper 'moldenogl' 254# (make moldenogl) 255# and the full opengl version of molden 'gmolden', (does not need glut) 256# (make gmolden) 257# 258LIBSOGL = -lglut -lGLU -lGL -lX11 -lm 259# 260# on linux : 261# 262#LIBSG = -L/usr/local/lib -lglut -lGLU -lGL -lX11 -lm 263# 264# on linux : sometimes you also need the gdk library: 265# 266#LIBSG = -L/usr/local/lib -lgdk -lglut -lGLU -lGL -lX11 -lm 267# 268# on linux with older Mesa installations try: 269# 270#LIBSG = -L/usr/local/lib -lglut -lMesaGLU -lMesaGL -lXi -lX11 -lm 271# 272# MacOS X "Panther" OpenGL implementation 273# Needs Xcode tools 274# 275#LIBSG = -L/usr/local/lib -framework GLUT -framework OpenGL -framework Cocoa 276# 277# From fred arnold, also OS-X 278# 279#LIBSG = -L/usr/local/lib -Wl,-framework -Wl,GLUT -Wl,-framework -Wl,OpenGL -Wl,-framework -Wl,Cocoa -lGLU -lGL -lX11 -lm 280 281all: molden gmolden ambfor/ambfor ambfor/ambmd surf/surf $(EXTEN) 282xwin.o: xwin.c rots.h 283xwingl.o: xwin.c rots.h 284 285molden: $(OBJS) mpdum.o xwin.o 286 $(LDR) -o molden $(OBJS) mpdum.o xwin.o $(LIBS) $(LDFLAGS) 287 288gmolden: $(OBJS) mpdum.o xwingl.o 289 $(LDR) -o gmolden $(OBJS) mpdum.o xwingl.o $(LIBSG) 290 291ambfor/ambfor: ambfor/*.f ambfor/*.c 292 $(MAKE) -C ambfor FC=${FC} LDR="${LDR}" EXT="${EXT}" 293 294ambfor/ambmd: ambfor/*.f ambfor/*.c 295 $(MAKE) -C ambfor ambmd FC=${FC} LDR="${LDR}" EXT="${EXT}" 296 297surf/surf: surf/*.h surf/*.c 298# $(MAKE) -C surf depend 299 $(MAKE) -C surf EXT="${EXT}" 300 301# noxwin will not work as long as the old ocglbck calls arent in dummys 302 303noxwin: $(OBJS) $(DOBJ) mpdum.o 304 $(LDR) -o molden $(OBJS) $(DOBJ) mpdum.o -lm 305 306# This version allows the fitting of multipole moments to the electrostatic 307# pontential 308 309molden.mpfit: $(OBJS) mpolefit.o xwinmp.o 310 $(LDR) -o molden $(OBJS) mpolefit.o xwinmp.o $(LIBS) $(LDFLAGS) 311 312xwinmp.o: xwin.c 313 $(CC) $(CFLAGS) -DMPFIT xwin.c 314 mv xwin.o xwinmp.o 315 316xwingl.o: xwin.c 317 $(CC) $(CFLAGS) -DDOGL -c xwin.c -o xwingl.o 318 319unmullik: unmullik.o 320 $(LDR) -o unmullik unmullik.o 321 322# short_wrl removes redundant vertices from molden's VRML2 files 323# with the courtesy of Andreas Klamt of COSMOSlogic 324# 325short_wrl: short_wrl.o 326 $(LDR) -o short_wrl short_wrl.o 327 328# Moldens OpenGL helper program 329 330moldenogl: oglmol.o silly.o 331 $(CC) -o moldenogl oglmol.o silly.o $(LIBSOGL) 332 333# conversion of CADPAC output to molden format 334 335cad2mol: cad2mol.o 336 $(LDR) -o cad2mol cad2mol.o 337 338clean: 339 rm -f $(OBJS) mpdum.o xwin.o xwingl.o molden gmolden ambfor/ambfor ambfor/ambmd surf/surf ambfor/*.o surf/*.o 340 341exten: 342 ./register_extension.sh 343 344exten2: 345 ./register_extension.sh /usr/local/bin 346 347install: $(EXTENZ) 348 sudo install -t /usr/local/bin -m 755 molden gmolden ambfor/ambfor ambfor/ambmd surf/surf 349