# DO NOT MODIFY THIS MAKEFILE.
# It was generated automatically by fixmake
# from input file /net/freedom/work1/congen/linux/v2/support//emap/makefile.gen and writing to /net/freedom/work1/congen/linux/v2/support//emap/makefile.
#
# CONGEN EMAP and proline construction makefile. To be used with make.
# Copyright (c) 1987-1988 Robert E. Bruccoleri
# 
# Copyright (c) 1990-1997 Bristol-Myers Squibb Company
# 
# Please see the file, COPYRIGHT, for the copyright notice and
# terms and conditions for use of this file.
#
# Makefile macros for a Linux machine running gfortran and gcc.

# Flags -- note that common flags go on the binary definitions

CFLAGS        = -g
COPTFLAGS     = -g -O2 
CSPECOPTFLAGS = -g -O0
CPPFLAGS      = -DLANGUAGE_C -Dlinux -Dunix
FFLAGS        = -g
FOPTFLAGS     = -g -O2 
FSPECOPTFLAGS = -g -O0
FCPPFLAGS     = -Dlinux -Dunix 
ARFLAGS       = qs
LDFLAGS       = 
MAXPROCS      = 20

# Binaries

CC            = gcc44 -ffloat-store -pthread
CPP	      = gcc44 -E
FC            = gfortran44 -std=gnu -fno-second-underscore -fno-f2c -ffloat-store -pthread -fdump-core -fbacktrace 
FLECS         = $(CGBIN)/flecs
FCPP          = $(CGBIN)/fcpp -F
YACC          = $(CGBIN)/myacc
LEX           = flex
INSTALL	      = $(CGBIN)/install
MKPROTO	      = $(CGBIN)/mkproto
SHELL	      = /bin/sh

.SUFFIXES:			# Roll our own below.
.SUFFIXES: .o .c .flx .out .inp

SOURCES = descrip.mms emap.flx emapala.inp emapgly.inp emappro.flx \
	  emappro.inp emappro_c.proto emapproc.c makefile.gen \
	  emapproh.flx emapproh_c.proto emapprohc.c \
	  mkprocns.flx mkprocns.inp proring.inp remappro.flx makefile \
	  am_emapala.inp am_emapgly.inp am_emappro.inp mkam_procns.inp \
          am_proring.inp \
	  am94_emapala.inp am94_emapgly.inp am94_emappro.inp mkam94_procns.inp \
          am94_proring.inp 

EXES = emap emappro emapproh remappro mkprocns

# The following map list is not complete, but since one set of
# of commands generates the set for each type of map, only one is named.

MAPS = emapala30.omp emapgly30.omp emappro30.omp pro.cns \
       am_emapala30.omp am_emapgly30.omp am_emappro30.omp am_pro.cns \
       am94_emapala30.omp am94_emapgly30.omp am94_emappro30.omp am94_pro.cns

all :	$(MAPS)
	echo "All maps made"

emapala30.omp : emap emapala.inp
	./emap <emapala.inp >emapala.out

emapgly30.omp : emap emapgly.inp
	./emap <emapgly.inp >emapgly.out

emappro30.omp : emappro emappro.inp remappro pro.cns
	./emappro <emappro.inp >emappro.out
	echo "emappro5.omp\nemappro" | ./remappro
	
pro.cns : proring.out mkprocns mkprocns.inp 
	./mkprocns <mkprocns.inp >mkprocns.out

proring.out : proring.inp
	runcg proring

am_emapala30.omp : emap am_emapala.inp
	./emap <am_emapala.inp >am_emapala.out

am_emapgly30.omp : emap am_emapgly.inp
	./emap <am_emapgly.inp >am_emapgly.out

am_emappro30.omp : emappro am_emappro.inp remappro am_pro.cns
	./emappro <am_emappro.inp >am_emappro.out
	echo "am_emappro5.omp\nam_emappro" | ./remappro

am_pro.cns : am_proring.out mkprocns mkam_procns.inp
	./mkprocns <mkam_procns.inp >mkam_procns.out

am_proring.out : am_proring.inp
	runcg am_proring

am94_emapala30.omp : emap am94_emapala.inp
	./emap <am94_emapala.inp >am94_emapala.out

am94_emapgly30.omp : emap am94_emapgly.inp
	./emap <am94_emapgly.inp >am94_emapgly.out

am94_emappro30.omp : emapproh am94_emappro.inp remappro am94_pro.cns
	./emapproh <am94_emappro.inp >am94_emappro.out
	echo "am94_emappro5.omp\nam94_emappro" | ./remappro

am94_pro.cns : am94_proring.out mkprocns mkam94_procns.inp
	./mkprocns <mkam94_procns.inp >mkam94_procns.out

am94_proring.out : am94_proring.inp
	congen <am94_proring.inp | sed -e 's/    1   1 C /    1   2 C /' >am94_proring.out

emap:	emap.o
	$(FC) $(FFLAGS) emap.o $(CGLIB)/congen.o $(CGLIB)/congen.a -o emap $(LDFLAGS)

remappro : remappro.o
	$(FC) $(FFLAGS) remappro.o $(CGLIB)/congen.a -o remappro $(LDFLAGS)

emappro : emappro.flx emapproc.c emappro_c.proto
	wrapgen -c -i emappro_c.proto -h wrappers_f.h -o emappro_cw.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) -I$(CGS) emappro_cw.c emapproc.c
	cat $(CGS)/wrappers_f.h >>wrappers_f.h
	touch emappro.flx
	$(MAKE) emappro.o
	$(FC) emappro.o emapproc.o emappro_cw.o \
              $(CGS)/congen.o $(CGS)/congen.a -o emappro $(LDFLAGS)

emapproh : emapproh.flx emapprohc.c emapproh_c.proto
	wrapgen -c -i emapproh_c.proto -h wrappersh_f.h -o emapproh_cw.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) -I$(CGS) emapproh_cw.c emapprohc.c
	cat $(CGS)/wrappers_f.h >>wrappersh_f.h
	touch emapproh.flx
	$(MAKE) emapproh.o
	$(FC) emapproh.o emapprohc.o emapproh_cw.o \
              $(CGS)/congen.o $(CGS)/congen.a -o emapproh $(LDFLAGS)

mkprocns: mkprocns.o
	$(FC) mkprocns.o $(CGLIB)/congen.a -o mkprocns $(LDFLAGS)

clean :
	-rm -f *.f *.fi *.fli *.o $(EXES) core foo* *.out *.omp pro.cns emappro_?w.c \
            emapproh_?w.c wrappers_?.h wrappersh_?.h

install : $(MAPS)
	for f in *.omp pro.cns ; do \
	    $(INSTALL) -m 444 -c $${f} $(CGDATA) ; \
        done

tovax: tovax.time

tovax.time: $(SOURCES) 
	cp $? dino
	(cd dino/; chmod u+w $?)
	touch tovax.time

makefile: makefile.gen $(CG)/$(CGPLATFORM).make
	$(CGBIN)/fixmake $(CG)/$(CGPLATFORM) makefile.gen makefile

.DEFAULT :
	co $<

.flx.o:
	$(FCPP) $(FCPPFLAGS) -I$(CGS) $*.flx $*.fi
	$(FLECS) $*.fi
	$(FC) -c $(FFLAGS) $*.f


