# load platform dependent settings (compiler, flags, libs...)
ARCH = $(shell uname -s)
ifeq ($(ARCH), HP-UX)
ARCH=HPUX
endif
include $(ARCH).def

# load project include and library settings
include Makefile.inc

INC = $(PROJECT_INC) $(ARCH_INC)
CPPFLAGS = $(DEF) $(OPT) $(INC) $(DEBUG) $(WARN)
CFLAGS = $(DEF) $(OPT) $(INC) $(DEBUG) $(WARN)

LDFLAGS = $(PROJECT_LIB) $(ARCH_LDFLAGS)
LDLIBS =  $(ARCH_LIB)

OBJDIR = .
SRCDIR = .
LIBDIR = .

# extend this for other object files
OBJS = $(patsubst %.cc, $(OBJDIR)/%.o, $(filter %.cc, $(CPP_source)))
OBJS += $(patsubst %.cpp, $(OBJDIR)/%.o, $(filter %.cpp, $(CPP_source)))
OBJS += $(patsubst %.C, $(OBJDIR)/%.o, $(filter %.C, $(CPP_source)))
OBJS += $(patsubst %.c, $(OBJDIR)/%.o, $(filter %.c, $(C_source)))

.SUFFIXES: .cc .cpp .C .c .l _m.cc
# implicit rules for *.o files
$(OBJDIR)/%.o : $(SRCDIR)/%.cc
	$(CXX) -c $(CPPFLAGS) -o $@ $<
$(OBJDIR)/%.o : $(SRCDIR)/%.cpp
	$(CXX) -c $(CPPFLAGS) -o $@ $<
$(OBJDIR)/%.o : $(SRCDIR)/%.C
	$(CXX) -c $(CPPFLAGS) -o $@ $<

# other implicit rules
$(OBJDIR)/%.o : $(SRCDIR)/%.c
	$(CC) -c $(CFLAGS) -o $@ $<


default: all 

all: 
	make build_static 
	make build_shared

build_shared: libjidap.o
	$(SHARED_LINK) -o libjida.so libjidap.o
  
build_static: libjidap.o 
	$(AR) $(ARFLAGS) libjida.a libjidap.o
	$(RANLIB) libjida.a

install:
	cp libjida.a /usr/lib/libjida.a
	cp libjida.so /usr/lib/libjida.so
	cp Jida.h /usr/include/Jida.h
	cp JWinDefs.h /usr/include/JWinDefs.h
	cp jidakiss.h /usr/include/jidakiss.h

clean:
	rm -rf *.so
	rm -rf *.a
