CC := gcc
CXX := g++
# General setup GNU Makefile for EROS. To be included in all makefiles.  
# Define  makefile variables according to CPU
# MACHEROSD = `uname | sed 's/-//'`   i.e. { AIX HPUX OSF1 ULTRIX }
# 
# Makefile variables set are:
# - Path to Exec, Include, Libs, Obj directories (from EROSBASEREP env. var.)
#     i.e. variables LIB, OBJ, EXE, INC 
#---------------------------------------------------------------------------

# define MACHEROS from uname
MACHEROS := $(shell echo `uname`)
# define the -D option
MACHEROSD := $(shell echo `uname | sed 's/-//'`)

#-
#-     Optimization option different for HP...
ifeq (${MACHEROS},HP-UX)
  O := +O
else
  O := -O
endif
#-
#-   Define Makefile paths
#-  
 PP  := ${EROSBASEREP}/${MACHEROS}/
 LIB := ${PP}/Libs/
 SLB := ${PP}/ShLibs/
 OBJ := ${PP}/Objs/
 EXE := ${PP}/Exec/
 INC := ${EROSBASEREP}/Include/
 CCI := ${INC}/CInc/
 CXI := ${INC}/CxxInc/
 GLB := ${GNU}/${MACHEROS}/lib/
#--

#-
#-    Define default compilation flags
#--
ifeq (${MACHEROS},HP-UX)                                    
  CFLAGS   :=  -Aa
  FFLAGS   :=  -Aa -I${INC} -D${MACHEROSD}  
  CPPFLAGS :=  -I${INC} -D${MACHEROSD} \
               -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
else
  FFLAGS   :=  -I${INC} -D${MACHEROSD}  
  CPPFLAGS :=  -I${INC} -D${MACHEROSD}
endif
AR       := ar
ARFLAGS  := -rcs

ifeq ($(CC), gcc)
CFLAGS       := -g -O -Wall -Wpointer-arith \
                -Wmissing-prototypes -Wsynth -I$(INC)
//CXXFLAGS     := $(CFLAGS) -fno-implicit-templates -I$(CXI)
CXXFLAGS     := $(CFLAGS) -I$(CXI)
endif

#- redefine implicit rule. Les .o sont dans $(OBJ).
$(OBJ)%.o:%.c
	$(COMPILE.c) -o $@ $<

$(OBJ)%.o:%.cc
	$(COMPILE.cc) -o $@ $<

$(OBJ)%.o:%.f
	$(COMPILE.f) -o $@ $< 

#OSF1
#LDFC est f77
#LDFCFLAGS est rien

#parfois
#LDFC est cc
#LDFCFLAGS est -ltruc

#------------------------------------------------- End of Makefile.h ------- 
all : piup.so

clean:
	rm -f piup.o piup.so


piup.so : piup.o \
          $(SLB)libpeida.so $(SLB)liberosc.so 
	ld -shared -o piup.so -all piup.o \
        -none -L$(SLB) -lPI -lpeida -lerosc -L$(GLB) -lg++ -lstdc++ -lm -lc

#        -none -L$(SLB) -lPI -lOuIm -lerosc -lStarReco \
#	-L$(GLB) -lg++ -lstdc++ -lm -lc


piup.o: piup.cc  piup.h \
 $(INC)perrors.h \
 $(INC)exceptions.h \
 $(INC)defs.h \
 $(INC)fitsimage.h \
 $(INC)cimage.h \
 $(INC)rzimage.h \
 $(INC)rzvect.h \
 $(INC)machine.h \
 $(INC)datatypes.h \
 $(INC)fitsheader.h \
 $(INC)fitskeys.h \
 $(INC)utils.h $(INC)peida.h 

