# makefile for OPUS
# on OSX system or LINYUX ...gcc

# tar a new version ckopusVx.y.z.tgz
# make update ver=x.y.z

TARGET  = ckopus
THEREST = solarpos coad opusreader

CC      = cc
LIBS    = -lm
#-fcommon is required since gcc 10.1.0 (-fno-common is now default)
CFLAGS  = -fcommon
FC      = gfortran
FFLAGS  = -Wall -fcheck=all -fno-automatic -mcmodel=medium -fbacktrace

# lapack on OSX
#VLIB = -Wl,-framework -Wl,vecLib -qextname

# lapack on linux
#VLIB = -l/usr/bin -Llapack

HEADERS = opus.h constant.h bnr.h meeus.h
OBJ	  = meeus.o opus.o constant.o bnr.o
SRC     = meeus.c opus.c constant.c bnr.c ckopus.c

default: $(TARGET)

all: default ${THEREST}

%.o: %.c $(HEADERS)
	$(CC) $(CFLAGS) -c $< -o $@

$(TARGET) : $(OBJ) ${SRC}
	$(CC) $@.c $(OBJ) ${CFLAGS} $(LIBS) -o $@

solarpos : $(OBJ)
	$(CC) $@.c $(OBJ) ${CFLAGS} $(LIBS) -o $@

coad : $(OBJ)
	$(CC) $@.c $(OBJ) ${CFLAGS} $(LIBS) -o $@

opusreader : $(OBJ)
	$(CC) $@.c $(OBJ) ${CFLAGS} $(LIBS) -o $@

update :
	cp *.h ckopusV1.0
	cp *.c ckopusV1.0
	cp makefile ckopusV1.0
	cp Readme.txt ckopusV1.0
	tar -cvzf ckopusV${ver}.tgz ckopusV1.0

clean :
	rm -f *.o
	rm -f $(TARGET) ${THEREST}

bin :
	cp -f ckopus ~/bin
	#cp -f solarpos ~/bin
	cp -f opusreader ~/bin
	#cp -f coad ~/bin
