# # Architecture-specific Makefile include for several platforms # This was heavily derived from the Makefiles I used in Tachyon... # John Stone, johns@ks.uiuc.edu # # Some machines don't have/need ranlib, in their case, use 'touch' # this should be overridden by arch specific configuration lines below RANLIB= touch # # If you need to include or link against something other than the # math library, just add it here. # MISCDEFS= MISCINC= MISCFLAGS= MISCLIB= ## ## Cray Parallel Vector Processor Machines Using Threads ## ## cray-thr: $(MAKE) all \ "ARCH = cray-thr" \ "CC = cc" \ "CFLAGS = -O3 -D_REENTRANT $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = -r" \ "STRIP = strip" \ "LIBS = -L. -lpthread $(MISCLIB) -lm" ## ## Cray T3E Using MPI ## cray-t3e-mpi: $(MAKE) all \ "ARCH = cray-t3e-mpi" \ "CC = cc" \ "CFLAGS = -O3 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = -r" \ "STRIP = strip" \ "LIBS = -L. -lmpi $(MISCLIB) -lm" # Cray T3E performance tuning via "pat" cray-t3e-mpi-pat: $(MAKE) all \ "ARCH = cray-t3e-mpi-pat" \ "CC = cc" \ "CFLAGS = -O3 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = -r" \ "STRIP = strip" \ "LIBS = -L. -lmpi $(MISCLIB) -lm -lpat" # Cray T3E profiling using "apprentice" cray-t3e-mpi-app: $(MAKE) all \ "ARCH = cray-t3e-mpi-app" \ "CC = cc" \ "CFLAGS = -O3 -X1 -happrentice $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = -r" \ "STRIP = touch" \ "LIBS = -L. -lmpi $(MISCLIB) -lm -lapp" ## ## OSF1 / Digital Unix 4.0b on Alpha processors ## tru64-alpha-static: $(MAKE) all \ "ARCH = tru64-alpha-static" \ "CC = cc" \ "CFLAGS = -std1 -fast -O4 -arch host -tune host -w0 -verbose $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -non_shared -om -L. $(MISCLIB) -lm" ## ## OSF1 / Digital Unix 4.0b on Alpha processors with POSIX Threads ## tru64-alpha-thr: $(MAKE) all \ "ARCH = tru64-alpha-thr" \ "CC = cc" \ "CFLAGS = -speculate all -std1 -pthread -fast -O4 -arch host -tune host -verbose $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm" ## ## Architecture flags for Sun Solaris 2.x running on the Sparc platform. ## Expects Sun C 4.2 or newer, and Solaris 2.[3456] or newer. ## Configurations for gcc, and lcc are also listed. ## solaris: $(MAKE) all \ "ARCH = solaris" \ "CC = cc" \ "CFLAGS = -v -xtransition -Xc -fast -xO5 -native -xdepend -fsimple=2 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm" solaris-profile: $(MAKE) all \ "ARCH = solaris-profile" \ "CC = cc" \ "CFLAGS = -fast -xO3 -native -g -xpg $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" solaris-profile2: $(MAKE) all \ "ARCH = solaris-profile2" \ "CC = cc" \ "CFLAGS = -fast -xO3 -native -g -p $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" solaris-purify: $(MAKE) all \ "ARCH = solaris-purify" \ "CC = purify cc" \ "CFLAGS = -g $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" solaris-debug: $(MAKE) all \ "ARCH = solaris-debug" \ "CC = cc" \ "CFLAGS = -Xc -g -native $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" solaris-lam: $(MAKE) all \ "ARCH = solaris-lam" \ "CC = hcc" \ "CFLAGS = -v -xtransition -Xc -fast -xO5 -native -xdepend -fsimple=2 -I$(LAMHOME)/h $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. -L$(LAMHOME)/lib -lmpi $(MISCLIB) -lm -lsocket -lnsl" solaris-mpi: $(MAKE) all \ "ARCH = solaris-mpi" \ "CC = cc" \ "CFLAGS = -v -xtransition -Xc -fast -xO5 -native -xdepend -fsimple=2 -I$(MPIINC) $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. -L$(MPILIB)/solaris/ch_p4 -lmpi $(MISCLIB) -lm -lsocket -lnsl" solaris-thr: $(MAKE) all \ "ARCH = solaris-thr" \ "CC = cc" \ "CFLAGS = -v -xtransition -Xc -mt -fast -xO5 -native -xdepend -fsimple=2 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm" solaris-ultra-thr: $(MAKE) all \ "ARCH = solaris-ultra-thr" \ "CC = cc" \ "CFLAGS = -v -xtransition -Xc -mt -fast -xO5 -native -xarch=v8plusa -xdepend -fsimple=2 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) $(MISCLIB) -lm" solaris-ultra2-thr: $(MAKE) all \ "ARCH = solaris-ultra-thr-32" \ "CC = cc" \ "CFLAGS = -v -Xc -mt -fast -xO5 -native -xtarget=ultra2 -xarch=v8plusa -xdepend -fsimple=2 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) $(MISCLIB) -lm" solaris-ultra3-thr: $(MAKE) all \ "ARCH = solaris-ultra3-thr" \ "CC = cc" \ "CFLAGS = -v -xtransition -Xc -mt -fast -xO5 -native -xarch=v8plusb -xdepend -fsimple=2 -xalias_level=strong -xprefetch $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) $(MISCLIB) -lm" solaris-64-thr: $(MAKE) all \ "ARCH = solaris-64-thr" \ "CC = cc" \ "CFLAGS = -v -Xc -mt -fast -xO5 -native -xarch=v9a -xdepend -fsimple=2 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) $(MISCLIB) -lm" solaris-gcc-thr: $(MAKE) all \ "ARCH = solaris-gcc-thr" \ "CC = gcc" \ "CFLAGS = -ansi -Wall -pedantic -O4 -mv8 -msupersparc $(MISCFLAGS) -D_REENTRANT" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm -lsocket -lthread" ## ## SGI Architecture flags, should work with MPI, threads etc. ## Tested with Irix 5.x extensively, Irix 6.x needs retesting ## irix5-mpi: $(MAKE) all \ "ARCH = irix5-mpi" \ "CFLAGS = -O2 -mips2 -I$(MPIINC) $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. -L$(MPILIB)/IRIX/ch_p4 -lmpi $(MISCLIB) -lm" irix5: $(MAKE) all \ "ARCH = irix5" \ "CFLAGS = -O2 -mips2 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm" irix6: $(MAKE) all \ "ARCH = irix6" \ "CFLAGS = -O3 -mips3 -n32 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm" irix6-debug: $(MAKE) all \ "ARCH = irix6-debug" \ "CFLAGS = -g -mips3 -n32 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" irix6-purify: $(MAKE) all \ "ARCH = irix6-purify" \ "CC = purify cc" \ "CFLAGS = -g -mips3 -n32 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" irix6-64-thr: $(MAKE) all \ "ARCH = irix6-64-thr" \ "CFLAGS = -woff 1209,1174 -xansi -fullwarn -O3 -mips4 -64 -D_REENTRANT $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" irix6-thr: $(MAKE) all \ "ARCH = irix6-thr" \ "CFLAGS = -woff 1209,1174 -xansi -fullwarn -O3 -mips3 -n32 -D_REENTRANT $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" irix6-thr-purify: $(MAKE) all \ "ARCH = irix6-thr-purify" \ "CC = purify cc" \ "CFLAGS = -g -mips3 -n32 -D_REENTRANT $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" ## ## Architecture flags for IBM RS/6000 systems, including the SP-2 ## Supercomputer, and PowerPC based RS/6000 systems. The SP-2 configuration ## requires MPI for message passing. No multithread configurations are ## available yet, since access to a thread capable test machine is needed ## for implementation. These configurations require xlc. ## aix: $(MAKE) all \ "ARCH = aix" \ "CC = xlc" \ "CFLAGS = -O3 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm" aix-mpi: $(MAKE) all \ "ARCH = aix-mpi" \ "CC = mpcc" \ "CFLAGS = -O3 -I$(MPIINC) $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -us -L. -L$(MPILIB)/rs6000/ch_eui -lmpi $(MISCLIB) -lm" aix-thr: $(MAKE) all \ "ARCH = aix-thr" \ "CC = xlc" \ "CFLAGS = -O3 $(MISCFLAGS) -D_REENTRANT" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" ## ## Architecture flags for HP Unix workstations, no MPI configuration ## since no test platform has been available. The threaded HPUX ## configuration is untested, since no access to a test platform has ## been available. In theory it should work on a multiprocessor HP ## with POSIX threads capability. ## hpux: $(MAKE) all \ "ARCH = hpux" \ "CC = cc" \ "CFLAGS = -Ae +O4 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm" hpux-debug: $(MAKE) all \ "ARCH = hpux-debug" \ "CC = cc" \ "CFLAGS = -Ae -g $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" hpux-purify: $(MAKE) all \ "ARCH = hpux-purify" \ "CC = purify cc" \ "CFLAGS = -Ae -g $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "LIBS = -L. $(MISCLIB) -lm" hpux-thr: $(MAKE) all \ "ARCH = hpux-thr" \ "CC = cc" \ "CFLAGS = -Ae +O4 $(MISCFLAGS) -D_REENTRANT" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" ## ## An ancient configuration for NeXT computers, has not been tested ## recently, good luck. ## next: $(MAKE) all \ "ARCH = next" \ "CC = cc" \ "CFLAGS = -O $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" macosx: $(MAKE) all \ "ARCH = macosx" \ "CC = cc" \ "CFLAGS = -O5 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB)" ## ## BeOS ## beos: $(MAKE) all \ "ARCH = beos" \ "CC = gcc" \ "CFLAGS = -m486 -O6 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB)" ## ## An ancient configuration for generic BSD, has not been tested recently, ## good luck. ## bsd: $(MAKE) all \ "ARCH = bsd" \ "CC = gcc" \ "CFLAGS = -O6 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" bsd-sparc: $(MAKE) all \ "ARCH = bsd-sparc" \ "CC = gcc" \ "CFLAGS = -mv8 -msupersparc -O6 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" ## ## Windows (Win32) Builds using Cygnus' CygWin32 libraries and egcs ## win32: $(MAKE) all \ "ARCH = win32" \ "CC = gcc" \ "CFLAGS = -mpentium -Wall -O6 -fomit-frame-pointer -ffast-math -DWIN32 $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = echo" \ "RANLIB = echo" \ "LIBS = -L. $(MISCLIB) -lm" ## ## An ancient configuration for Linux ## linux: $(MAKE) all \ "ARCH = linux" \ "CC = gcc" \ "CFLAGS = -m486 -Wall -O6 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" linux-debug: $(MAKE) all \ "ARCH = linux-debug" \ "CC = gcc" \ "CFLAGS = -g $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = touch" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" linux-beowulf-mpi: $(MAKE) all \ "ARCH = linux-beowulf-mpi" \ "CC = gcc" \ "CFLAGS = -m486 -Wall -O6 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. -lmpi $(MISCLIB) -lm" linux-ppc: $(MAKE) all \ "ARCH = linux-ppc" \ "CC = gcc" \ "CFLAGS = -Wall -O6 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" linux-alpha: $(MAKE) all \ "ARCH = linux-alpha" \ "CC = gcc" \ "CFLAGS = -Wall -O6 -fomit-frame-pointer -ffast-math $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" linux-alpha-ccc: $(MAKE) all \ "ARCH = linux-alpha-ccc" \ "CC = ccc" \ "CFLAGS = -std1 -fast -O4 -arch host -tune host -w0 -verbose $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" linux-ia64: $(MAKE) all \ "ARCH = linux-ia64" \ "CC = cc" \ "CFLAGS = -O3 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" linux-ia64-sgicc: $(MAKE) all \ "ARCH = linux-ia64-sgicc" \ "CC = sgicc" \ "CFLAGS = -O3 $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm" linux-thr: $(MAKE) all \ "ARCH = linux-thr" \ "CC = gcc" \ "CFLAGS = -m486 -Wall -O6 -fomit-frame-pointer -ffast-math -D_REENTRANT $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" linux-ia64-thr: $(MAKE) all \ "ARCH = linux-ia64-thr" \ "CC = cc" \ "CFLAGS = -O3 -D_REENTRANT $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" linux-ia64-thr-sgicc: $(MAKE) all \ "ARCH = linux-ia64-thr-sgicc" \ "CC = sgicc" \ "CFLAGS = -O3 -D_REENTRANT $(MISCFLAGS) " \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. $(MISCLIB) -lm -lpthread" linux-lam: $(MAKE) all \ "ARCH = linux-lam" \ "CC = hcc" \ "CFLAGS = -m486 -Wall -O6 -fomit-frame-pointer -ffast-math -I$(LAMHOME)/h $(MISCFLAGS)" \ "AR = ar" \ "ARFLAGS = r" \ "STRIP = strip" \ "RANLIB = ranlib" \ "LIBS = -L. -L$(LAMHOME)/lib -lmpi $(MISCLIB) -lm"