##-*- Makefile -*-####################################################
## Filename:    makedefs
## Version:       1.0
## Description:   General makedefs
## Author:        $Author: pmw $
## Created at:    $Date: 2006/01/19 10:58:41 $
######################################################################

# C libraries ==============================
#C_ioLIBS_PATH = $(topdir)/../E3D_io_LCL-1.0a
#C_ioLIBS_PATH = $(topdir)/../E3D_io_LCL-1.0b
#C_ioLIBS_PATH = $(topdir)/../E3D_io_LCL-1.2
C_ioLIBS_PATH = $(IFU_PATH)/E3D_io_LCL-1.3
# Actually, IFU_PATH is supposed to point to the dir _above_ E3D_io_LCL-1.x,
# so this does not work for all people:
# C_ioLIBS_PATH = $(IFU_PATH)

# I/O and general
GENLIB = -lgen # $(C_ioLIBS_PATH)/C_libs/obj/libgen.a 
WCSLIB = -lwcs # $(C_ioLIBS_PATH)/C_libs/wcslib/libwcs.a 
IOLIB = -lio $(WCSLIB) $(GENLIB) # $(C_ioLIBS_PATH)/C_libs/io/obj/libio.a 
IOLIBSHARED = -llcl -L # $(C_ioLIBS_PATH)/liblcl.so

# Format ==============================
SEL_OBJ = *.o
FANSI = -DANSI

# Includes ==============================
INC =  $(C_ioLIBS_PATH)/incl
INC2 = $(IFU_PATH)/incl # for users who point IFU_PATH to the E3D_io_LCL-1.3 dir
PKG_INC = ../../incl
USER_INC = ../incl
LOCAL_INC =  /usr/local/include
STAND_INC = $(INC)/IFU_io.h
# Libs ==============================
LIB = -L$(C_ioLIBS_PATH)/C_libs/io/cfitsio -L$(C_ioLIBS_PATH)/C_libs/io/obj -L$(C_ioLIBS_PATH)/C_libs/obj -L$(C_ioLIBS_PATH)/C_libs/wcslib
LIB2 = -L$(IFU_PATH)/C_libs/io/cfitsio -L$(IFU_PATH)/C_libs/io/obj -L$(IFU_PATH)/C_libs/obj -L$(IFU_PATH)/C_libs/wcslib

# moved here from makedefs.local
V3D_INC = -I/usr/include -I/usr/X11R6/include -I$(PGPLOT_DIR)
V3D_LIB =  -lv3d # $(topdir)/pkg/v3d/obj/libv3d.a 
GRID_C_COMPILE = $(CC) $(DEBUG) $(CFLAGS) $(V3D_INC) -g -O2 -Wall -pedantic -c $(@F:.o=.c) && mv $(@F) $@
DELAUNAY_C_COMPILE = $(CC) $(DEBUG) $(CFLAGS) $(V3D_INC) -DTRILIBRARY -g -O2 -ffloat-store -w  -c $(@F:.o=.c) && mv $(@F) $@
NEW_C_COMPILE = $(CC) $(DEBUG) $(CFLAGS) $(V3D_INC) -c $(@F:.o=.c) && mv $(@F) $@
# always required
V3DLIB = $(O)/Euro3D.o $(O)/color_palett.o $(O)/fft2d.o $(O)/my_math.o $(O)/my_convolve.o $(O)/gl_lsq.o $(O)/stats.o 
#$(O)/my_grid.o

# Compilation commands ==============================

CFLAGS = -I$(PKG_INC) -I$(INC) -I$(INC2) -I$(USER_INC) -I$(LOCAL_INC) $(C_OPT) $(FANSI)
#-DSYSV
FFLAGS = $(F_OPT) -I$(PKG_INC) -I$(INC) -I$(INC2) -I$(USER_INC) -I$(LOCAL_INC)

C_COMPILE = $(CC) $(DEBUG) $(CFLAGS) -c $(@F:.o=.c) && mv $(@F) $@
F_COMPILE = $(F77) $(DEBUG) $(FFLAGS) -c $(@F:.o=.f) && mv $(@F) $@
LDF = -lm $(LIB) $(LIB2) -lwcs # -static

# Lex & Yacc ==============================
LEXOUTPUT = y.tab.o
CYACC_OUTPUT = y.tab.c
OYACC_OUTPUT = y.tab.o

# Directories ==============================
E = ../../../user/bin
O = ../obj
TK= ../../../user/tk
PAR= ../../../user/par

OBJ =
EXE =

DEBUG = 

# Tcl/tk ==============================
UPDATE_BIN = cp $? $(E)
UPDATE_PAR = cp $? $(PAR)
UPDATE_TK = cp $? $(TK)
REINDEX   = echo "auto_mkindex ." > reindex; tclsh reindex; rm reindex

STRIP = strip

.SUFFIXES: .o .c .for .h .l .y

all : OUT

dirobj :
	@ if [ ! -d $(O) ]; then (mkdir -p $(O);) fi

dirbin :
	@ if [ ! -d $(E) ]; then (mkdir -p $(E);) fi

dirtk :
	@ if [ ! -d $(TK) ]; then (mkdir -p $(TK);) fi

dirpar :
	@ if [ ! -d $(PAR) ]; then (mkdir -p $(PAR);) fi

clean :
	$(RM) $(EXE) $(OBJ) $(EXTRACLEAN)

distdir :
	@for file in `ls -a`; do \
        if test -d $$file ; then continue; fi; \
        if ls $$file | grep stamp >> /dev/null; then \
                continue; \
        fi; \
        if ls $$file | grep tclIndex >> /dev/null; then \
                continue; \
        fi; \
        if file $file | grep -i executable >> /dev/null; then \
                continue; \
        fi; \
               if file $file | grep -i object >> /dev/null; then \
                continue; \
        fi; \
               if file $file | grep -i relocable >> /dev/null; then \
                continue; \
               fi; \
        cp $$file $$distdir/$$file;  \
        done             
