#+
# Demo UDFs of an astronomical functions library - some functions from
# OpenWatcom C/C++ code.
#
# Note: install ref. lib and UDFs lib in /usr/local/lib
#       UDF lib is logically linked in the MySQL plugin dir.
#
# 17/12/2009: LN, INAF/IASF-BO                  Last change: 08/06/2018
#-

MAKE = make
CC ?= gcc
CCPP ?= g++
CFLAGS= -c -I. -O2 -Wall -Wno-parentheses -fPIC
CPPFLAGS= -c -I. -O2 -Wall -Wno-parentheses -fPIC
LDFLAGS = -fPIC
MYCFLAGS = `mysql_config --cflags`
MYLDFLAGS = `mysql_config --libs`
LIBS = -L. -l$(L) -lm
dest = /usr/local/lib
L = wafuncs
LUDF = astro
LIB = lib$(L).a
LIBSO = lib$(L).so
LIBUDF = libudf_$(LUDF).so

VER = v01a_`/bin/date +"%Y%m%d"`
dist = udf_demos_$(VER)


FILES = Makefile afuncs.h watdefs.h lunar.h date.h udf_astro.c udf_astro.h \
	alt_az.c date.c miscell.c \
	nutation.c obliquit.c precess.c \
	skysep_h.c ra_dec2GlGb.c ra_dec2ElEb.c \
	eq2ga.c eq2ec.c test_ecl2000.c

OBJS = alt_az.o date.o miscell.o \
	nutation.o obliquit.o precess.o \
	skysep_h.o ra_dec2GlGb.o ra_dec2ElEb.o

UDFOBJS = udf_astro.o

EXES = eq2ga eq2ec test_ecl2000

default: $(LIB) udf
all: $(LIB) $(EXES) udf

so: $(LIBSO)
exe: $(EXES)
libs: $(LIB) $(LIBSO)
udf: $(LIBSO) $(UDFOBJS) $(LIBUDF)


# MySQL UDFs
udf_astro.o: udf_astro.c
	$(CC) $(CFLAGS) $(MYCFLAGS) udf_astro.c

install:
	rm -f `mysql_config --plugindir`/$(LIBUDF)
	cp -a $(LIB) $(LIBSO) $(LIBUDF) $(dest)
	ln -s $(dest)/$(LIBUDF) `mysql_config --plugindir`

test_ecl2000: test_ecl2000.o $(LIB)
eq2ec: eq2ec.o $(LIB)
eq2ga: eq2ga.o $(LIB)


$(LIB): $(OBJS)
	ar rv $@ $?
	ranlib $@

$(LIBSO): $(OBJS)
	$(CC) -shared $(LDFLAGS) -o $@ $(OBJS)

$(LIBUDF): $(OBJS) $(UDFOBJS)
	$(CC) -shared $(LDFLAGS) $(MYLDFLAGS) -o $@ $(OBJS) $(UDFOBJS) $(LIBS) -l$(L)

tar:
	 tar zcvf $(dist).tar.gz $(FILES)

clean:
	rm -f *.o $(LIB) $(LIBSO) $(LIBUDF) $(EXES)
