#-*- makefile -*-
# GNU Makefile: use gmake!

# define system dependent flags, etc.
ifneq ("$(wildcard ../share/Make.flags)","")
	SHR = ../share/Make.flags
	SHRL = ../share/Make.local
else
	SHR = $(CODESYSDIR)/source/misc/makeflags.mk
	SHRL = $(CONFIGDIR)/Make.local
endif
-include $(SHRL)
include $(SHR)

ELVISLIB_FLAGS = -D__$(WORKSTATION_TYPE)

CFLAGS := $(CFLAGS) $(ELVIS_FLAGS) $(ELVISLIB_FLAGS)
ifdef DEBUG
        FFLAGS = $(DFFLAGS)
        CXXFLAGS = $(DCXXFLAGS)
        CFLAGS = $(DCFLAGS) $(ELVIS_FLAGS) $(ELVISLIB_FLAGS)
endif

ifdef CODESYSDIR
  OBJ = ${LOCAL}
  OBJDIR = $(OBJ)/obj/elvislib
  ARC = $(OBJ)/lib/elvislib.a
  FFILES = $(shell $(LS) *.f)
  FOBJ = $(foreach file,$(FFILES),$(OBJDIR)/$(subst .f,.o,$(file)))
else
  ifneq ($(MAKELEVEL),0)
# if OBJ was defined for main Makefile one level down
    ifeq ("${OBJ}",".")
        override OBJ=..
    endif
  endif
  OBJDIR = $(OBJ)/obj/elvislib
  ARC = $(OBJ)/lib/libelvislib.a
  FFILES = $(shell $(LS) *.F)
  FOBJ = $(foreach file,$(FFILES),$(OBJDIR)/$(subst .F,.o,$(file)))
endif



CFILES = $(shell $(LS) *.c)
HFILES = $(shell $(LS) *.h)
COBJ = $(foreach file,$(CFILES),$(OBJDIR)/$(subst .c,.o,$(file)))
CMEM = $(foreach file,$(COBJ),$(ARC)($(file)))
FMEM = $(foreach file,$(FOBJ),$(ARC)($(file)))
MEM = $(CMEM) $(FMEM)

.PHONY: FORCE all libelvislib

all: FORCE $(ARC)

libelvislib: FORCE $(ARC)

FORCE:
	@test -d $(OBJ)/lib || mkdir -p $(OBJ)/lib
	@test -d $(OBJDIR) || mkdir -p $(OBJDIR)

$(ARC): $(MEM)
	@$(RANLIB) $@ > /dev/null

$(ARC)($(OBJDIR)/%.o): %.c $(HFILES)
	$(c_proc)
ifndef NOARC
	$(make_ar)
endif

$(ARC)($(OBJDIR)/%.o): %.f $(HFILES)
	$(F_proc)
ifndef NOARC
	$(make_ar)
endif

$(ARC)($(OBJDIR)/%.o): %.F $(HFILES)
	$(F_proc)
ifndef NOARC
	$(make_ar)
endif

#
#---------------------------------------------------
exec:
	@echo 

clean: 
	@rm -f $(OBJDIR)/*

realclean: clean
	@rm -f $(ARC)

install:
	@test -d $(LIBDIR) || mkdir -p $(LIBDIR)
	@if test -f $(ARC); then \
	  umask 133; cp $(ARC) $(LIBDIR)/; \
	else test -f $(LIBDIR)/libelvislib.a || echo ">>> can not find $(ARC)";fi;  

uninstall:
	rm -f $(LIBDIR)/libelvislib.a
