From aa2a1dedd83baffa7853b64efc59bf4e67418497 Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Mon, 21 Jun 2021 16:39:29 +0200 Subject: [PATCH] Add some more files --- src/configure | 334 +++++++++++++++++++++++++++++++++++++++++++++++ src/maker | 4 + src/mangdir.data | 9 ++ 3 files changed, 347 insertions(+) create mode 100755 src/configure create mode 100755 src/maker create mode 100644 src/mangdir.data diff --git a/src/configure b/src/configure new file mode 100755 index 0000000..a88d23b --- /dev/null +++ b/src/configure @@ -0,0 +1,334 @@ +#! /bin/sh +# © M E C Swanson 2008 +# +#Script to generate the mangle Makefile +#supports Linux, Darwin (MacOSX Intel or PPC), and SunOS +#can generate Makefile for real*10 or real*8 versions of mangle +# +#USAGE: configure [] [] [] +#EXAMPLES: +#to automatically detect OS, architecture, and mangle version: +#configure +#to generate Makefile for Linux: +#configure Linux +#to generate Makefile for real8 for Mac PPC: +#configure Darwin ppc real8 + +#process command line arguments +if [ "$1" = "" ]; then + OS=`uname -s` +else + OS=$1 +fi + +if [ "$2" = "" ]; then + ARCH=`arch` +else + ARCH=$2 +fi + +if [ "$3" = "" ]; then + BYTES="real10" +else + BYTES=$3 +fi + +#Warnings +if [ "$ARCH" = "ppc" ]; then + OS=$OS$ARCH + if [ "$BYTES" = "real10" ]; then + echo "WARNING: the real*10 version of mangle has not yet been" + echo "successfully compiled on a PPC Mac. Please contact the mangle" + echo "development team (tegmark@mit.edu) if you manage to succeed!" + fi +fi + +if [ "$OS" = "SunOS" ]; then + echo "WARNING: mangle2.x has not yet been successfully compiled" + echo "on SunOS. Please contact the mangle development team" + echo "(tegmark@mit.edu) if you manage to succeed!" +fi + +if [ "$ARCH" = "ppc64" ]; then + echo "WARNING: mangle has not yet been tested on the ppc64 architecture." + echo "Please contact the mangle development team (tegmark@mit.edu)" + echo "if you manage to compile mangle on this system!" +fi + +if [ "$OS" != "Linux" ] && [ "$OS" != "Darwin" ] && [ "$OS" != "Darwinppc" ] && [ "$OS" != "SunOS" ] ; then + echo "WARNING: this configure script does not support $OS." + echo "Attempting to use configuration for Linux ..." + OS="Linux" +fi + +#Start of Makefile +echo "#Makefile for $OS $ARCH $BYTES generated with configure." > Makefile + +cat <> Makefile + +############################################################################### +# LOCAL CONFIGURATION: EDIT AS DESIRED +############################################################################### + +EOF + +#For real*10 version of Mangle, add compiler flags to the Makefile for +#Linux, Darwin, Darwinppc, or SunOS +if [ "$BYTES" = "real10" ]; then + case $OS in +#Linux compiler flags: + Linux) +cat <> Makefile +#------ +# Gnu + +CC = gcc +CFLAGS = -g -O3 \$(CPPFLAGS) -Wall -DLINUX -DGCC -D_FILE_OFFSET_BITS=64 + +F77 = gfortran +FFLAGS:= -Wall \$(CPPFLAGS) -g -O3 -DGFORTRAN -ff2c -D_FILE_OFFSET_BITS=64 +STATICFLAGS:= -static + +#MAKE=gmake + +all: mangle + +EOF + ;; +#Intel Mac compiler flags: + Darwin) +cat <> Makefile +#------ +# Gnu + +CC = gcc +CFLAGS = -g -O3 -Wall -DMACOSX -DGCC -m32 -D_FILE_OFFSET_BITS=64 + +F77 = gfortran +FFLAGS:= -Wall -g -O3 -DGFORTRAN -ff2c -m32 -D_FILE_OFFSET_BITS=64 +#STATICFLAGS:= -static-libgfortran +STATICFLAGS:= -nodefaultlibs -lSystem -lgcc -lm -lgfortran_static +# static linking of gfortran library to compile for distribution. +# hack to work around the fact that the -static-libgfortran flag does +# not currently work on Darwin - requires running the following +# command to make a symbolic link to the static gfortran library +# in /usr/local/gfortran/lib or wherever gfortran is installed: +# sudo ln -s libgfortran.a libgfortran_static.a + +#MAKE=gmake + +all: mangle + +EOF +echo "WARNING: To compile statically with gfortran (i.e., using 'make static')," +echo "you need to make a symbolic link to the static gfortran library as follows:" +echo "" +echo "cd /usr/local/gfortran/lib (or wherever gfortran is installed)" +echo "sudo ln -s libgfortran.a libgfortran_static.a" +echo "" + ;; +#PPC Mac compiler flags: + Darwinppc) +cat <> Makefile +#------ +# Gnu + +CC = gcc +CFLAGS = -g -O3 -Wall -DMACOSX -DGCC -D_FILE_OFFSET_BITS=64 + +F77 = gfortran +FFLAGS:= -Wall -g -O3 -DGFORTRAN -ff2c -D_FILE_OFFSET_BITS=64 +#STATICFLAGS:= -static-libgfortran +STATICFLAGS:= -nodefaultlibs -lSystem -lgcc -lm -lgfortran_static +# static linking of gfortran library to compile for distribution. +# hack to work around the fact that the -static-libgfortran flag does +# not currently work on Darwin - requires running the following +# command to make a symbolic link to the static gfortran library +# in /usr/local/gfortran/lib or wherever gfortran is installed: +# sudo ln -s libgfortran.a libgfortran_static.a + +#MAKE=gmake + +all: mangle + +EOF + ;; +#SunOS compiler flags: + SunOS) +cat <> Makefile +#---- +# Sun + +#CC = cc +#CFLAGS = -O -DSUN + +CC = gcc +CFLAGS = -g -O3 -DGCC -D_FILE_OFFSET_BITS=64 + +#F77 = f90 +##FFLAGS = -u -O -pg -DSUN +#FFLAGS = -u -O -DSUN + +# gnu gfortran +F77 = gfortran +FFLAGS = -W -g -O3 -DGFORTRAN -ff2c -D_FILE_OFFSET_BITS=64 + +#MAKE=make + +all: mangler + +EOF + ;; + esac + +#If real*10 is not specified, default to real*8 version and add compiler +#flags to the Makefile for Linux, Darwin, Darwinppc, or SunOS +else + case $OS in +#Linux compiler flags: + Linux) +cat <> Makefile +#------ +# Gnu + +CC = gcc +CFLAGS = -g -O3 -Wall -DLINUX -DGCC -m32 -D_FILE_OFFSET_BITS=64 + +## f2c +#F77 = fort77 +#FFLAGS = -u -a -C -g -DF2C +##-O3 +##-pg + +# gnu g77 (which assumes no SAVE) +F77 = g77 +FFLAGS = -Wimplicit -fbounds-check -g -O3 -DG77 -m32 -D_FILE_OFFSET_BITS=64 + +#MAKE=gmake + +all: mangle + +EOF + ;; +#Intel Mac compiler flags: + Darwin) +cat <> Makefile +#------ +# Gnu + +CC = gcc +CFLAGS = -g -O3 -Wall -DMACOSX -DGCC -m32 -D_FILE_OFFSET_BITS=64 + +# gnu g77 (which assumes no SAVE) +F77 = g77 +FFLAGS = -Wimplicit -fbounds-check -g -O3 -DG77 -m32 -D_FILE_OFFSET_BITS=64 + +#MAKE=gmake + +all: mangle + +EOF + ;; +#PPC Mac compiler flags: + Darwinppc) + +cat <> Makefile +#------ +# Gnu + +CC = gcc +CFLAGS = -g -O3 -Wall -DMACOSX -DGCC -D_FILE_OFFSET_BITS=64 + +# gnu g77 (which assumes no SAVE) +F77 = g77 +FFLAGS = -Wimplicit -fbounds-check -g -O3 -DG77 -D_FILE_OFFSET_BITS=64 + +#MAKE=gmake + +all: mangle + +EOF + ;; +#SunOS compiler flags: + SunOS) +cat <> Makefile +#---- +# Sun + +CC = cc +CFLAGS = -O -DSUN -m32 -D_FILE_OFFSET_BITS=64 + +#CC = gcc +#CFLAGS = -g -O3 -DGCC + +F77 = f77 +#FFLAGS = -u -O -pg -DSUN +FFLAGS = -u -O -DSUN -m32 -D_FILE_OFFSET_BITS=64 + +## gnu g77 (which assumes no SAVE) +#F77 = g77 +#FFLAGS = -Wimplicit -g -O3 -DG77 + +#MAKE=make + +all: mangler + +EOF + ;; + esac +fi + +#add this text to Makefile for all systems: +cat <> Makefile +#----------------- +# starlink library + +# path to search for the starlink library +ISLIB = -L./lib/starlink -L\$(HOME)/lib/starlink + +# starlink library should be called libstar.a +# Edit as desired, +# or make a soft link from the actual starlink library to libstar.a: +# ln -s libstar.a +SLIB = -lstar + +############################################################################### +# END OF LOCAL CONFIGURATION +############################################################################### + +BIN=../bin +ILIB = -L. +LLIB = \$(LDFLAGS) -lmangle + +PROGS = balkanize drangle harmonize map pixelize pixelmap polyid poly2hpx weight_dumb poly2poly ransack rasterize snap unify weight test +#ddcount rotate rrcoeffs + +COBJ = progress.o rwhealpix.o rwbinpoly.o advise_fmt.o braktop_.o cmminf.o convert.o copy_format.o copy_poly.o drandom.o drangle_polys.o dranglepolys_.o dump_poly.o findtop_.o get_pixel.o garea.o gcmlim.o gphbv.o gphi.o gptin.o gspher.o gsphr.o gvert.o gvlim.o gvphi.o harmonize_polys.o harmonizepolys_.o healpix_ang2pix_nest.o healpixpolys.o ikrand.o msg.o new_poly.o new_vert.o partition_poly.o places.o poly_id.o poly_sort.o prune_poly.o rasterize.o rdangle.o rdline.o rdmask.o rdmask_.o rdspher.o rrcoeffs.o scale.o sdsspix.o search.o snap_poly.o split_poly.o strcmpl.o strdict.o vmid.o weight_fn.o which_pixel.o wrangle.o wrho.o wrmask.o wrrrcoeffs.o wrspher.o + +FOBJ = azel.s.o azell.s.o braktop.s.o felp.s.o fframe.s.o findtop.s.o garea.s.o gaream.s.o gcmlim.s.o gphi.s.o gphim.s.o gphbv.s.o gptin.s.o gsphera.s.o gspher.s.o gsubs.s.o gvert.s.o gvlim.s.o gvphi.s.o iylm.s.o pix2vec_nest.s.o twodf100k.o twodf230k.o twoqz.o wlm.s.o wrho.s.o + +EOF + +#add this text to Makefile for all systems except Sun: +if [ ! "$OS" = "SunOS" ]; then +cat <> Makefile +# objects not already present (will try to extract them from libmangle.a) +OBJ := \$(strip \$(foreach objfile, \$(COBJ) \$(FOBJ), \$(shell if [ ! -r \$(objfile) ]; then echo \$(objfile); fi))) + +mangle: + @ if [ -r libmangle.a -a "\$(OBJ)" ] ; then \\ + echo "extracting files from libmangle.a" ; \\ + ar xo libmangle.a \$(OBJ) >/dev/null 2>&1 ; \\ + rm -f __.SYMDEF ; \\ + fi + @ \$(MAKE) mangler + @ rm -f \$(COBJ) \$(FOBJ) + +EOF + +fi + +#append non-system dependent part of (in Makefile.in) to Makefile +cat Makefile.in >> Makefile + +echo "Makefile generated for $OS $ARCH $BYTES." diff --git a/src/maker b/src/maker new file mode 100755 index 0000000..0108ccb --- /dev/null +++ b/src/maker @@ -0,0 +1,4 @@ +echo "" +includec advise_fmt.c balkanize.c braktop_.c cmminf.c convert.c copy_format.c copy_poly.c ddcount.c drandom.c drangle.c drangle_polys.c dranglepolys_.c dump_poly.c findtop_.c garea.c gcmlim.c gphbv.c gphi.c gptin.c gspher.c gsphr.c gvert.c gvlim.c gvphi.c get_pixel.c harmonize.c harmonize_polys.c harmonizepolys_.c healpix_ang2pix_nest.c healpixpolys.c ikrand.c map.c msg.c new_poly.c new_vert.c partition_poly.c pixelize.c pixelmap.c places.c poly2poly.c poly_id.c polyid.c poly_sort.c prune_poly.c ransack.c rasterize.c rdangle.c rdline.c rdmask_.c rdmask.c rdspher.c rotate.c rrcoeffs.c scale.c sdsspix.c search.c snap.c snap_poly.c split_poly.c strcmpl.c strdict.c unify.c vmid.c weight.c weight_fn.c which_pixel.c wrangle.c wrho.c wrmask.c wrrrcoeffs.c wrspher.c test.c +echo "" +includef azell.s.f azel.s.f braktop.s.f felp.s.f fframe.s.f findtop.s.f garea.s.f gaream.s.f gcmlim.s.f gphbv.s.f gphi.s.f gphim.s.f gptin.s.f gsphera.s.f gspher.s.f gsubs.s.f gvert.s.f gvlim.s.f gvphi.s.f iylm.s.f pix2vec_nest.s.f twodf100k.f twodf230k.f twoqz.f wlm.s.f wrho.s.f diff --git a/src/mangdir.data b/src/mangdir.data new file mode 100644 index 0000000..0d3a0c0 --- /dev/null +++ b/src/mangdir.data @@ -0,0 +1,9 @@ +c----------------------------------------------------------------------- +c * mangenv = name of environment variable containing mangle directory. +c * mangdir = pathname of directory containing mangle code. +c * These variables are declared in mangdir.inc + data mangenv,mangdir /'MANGLEDIR', +c * DO NOT TRY CHANGING THE FOLLOWING, AS THE NAME WILL BE OVERWRITTEN. +c * THE DIRECTORY IS OBTAINED FROM THE ENVIRONMENT VARIABLE 'MANGLEDIR'. + * ''/ +c