
# HIL: No spaces or comments after otherwise it captures them!
# Determine the platform
UNAME_S := $(shell uname -s)

ifeq ($(UNAME_S),Darwin)
  CFLAGS += -w -g -Wall -c -I/opt/local/include/gsl -I/opt/local/include
  CC := clang++ -arch x86_64
else ifeq ($(UNAME_S),Linux)
  CFLAGS += -w -g -Wall -c 
  CC := g++
else ifeq ($(UNAME_S),CYGWIN_NT-10.0)
  CFLAGS += -w -g -Wall -c -I/usr/include/gsl -I/usr/include
  CC := g++
else
  CFLAGS += -w -g -Wall -c 
  CC := g++
endif

EXEC = DFMS_PDS_L2_to_L3

BIN = bin
SRC = src
OBJ = obj
LIB = /usr/lib/x86_64-linux-gnu/

LIBS = -lm -lgsl -lgslcblas

SRCFILES := $(wildcard $(SRC)/*.cc)
OBJFILES := $(patsubst %.cc, $(OBJ)/%.o, $(notdir $(SRCFILES)))
OBJS := $(patsubst %.cc, %.o, $(notdir $(SRCFILES)))
#tst :
#	@echo $(OBJLOC)

# Executable Targets
all: $(BIN)/$(EXEC)

$(BIN)/$(EXEC) : $(OBJFILES)
	$(CC) $^ -o $@ $(LIBS)

# Dependencies
$(OBJ)/%.o: $(SRC)/%.cc $(SRC)/%.hh $(SRC)/DFMS_globals.hh $(SRC)/DFMS_utility.hh $(SRC)/DFMS_structs.hh $(SRC)/DFMS_definedConstants.hh
	$(CC) $< $(CFLAGS) -o $@

# Miscellaneous Targets	
clean:
	rm -rf $(BIN)/$(EXEC) obj/*.o *~

HOMEDIR = ../../

date = `date +'%Y%m%d'`

tgz:
	tar cvzf $(HOMEDIR)ROSINA_DFMS_$(date).tgz $(HOMEDIR)ROSINA_DFMS
	
srctgz:
	tar cvzf src_$(date)_LatestWorking.tgz src

tabtgz:
	tar cvzf tables_$(date).tgz tables
	
dattgz:
	tar cvzf data_$(date).tgz data
	
delivtgz:
	tar cvzf Delivery_tarball_$(date).tgz src tables ConfigFile.dat DFMS_FM_Constants.dat DFMS_Exclusion_Times.dat
	

.PHONY : clean tgz srctgz tabtgz dattgz delivtgz
