# Specify where are the sources of the system. Do not modify unless using a different
# directory structure (why should you?).
SRC_DIR=$(LSDROOT)/$(SRC)/

# Variable used to prepare the options to search for the tcl and tk headers
# Do not modify
INCLUDE=-I$(PATH_TCL_HEADER) -I$(PATH_TK_HEADER) -I$(PATH_HEADER) -I$(LSDROOT)/$(SRC)

$(TARGET)$(EXT): $(FUN).o $(SRC_DIR)main_gnuwin.o $(SRC_DIR)file.o $(SRC_DIR)util.o $(SRC_DIR)object.o \
$(SRC_DIR)variab.o $(SRC_DIR)interf.o $(SRC_DIR)draw.o $(SRC_DIR)runtime.o $(SRC_DIR)debug.o $(SRC_DIR)edit.o \
$(SRC_DIR)edit_dat.o $(SRC_DIR)set_all.o $(SRC_DIR)analysis.o $(SRC_DIR)show_eq.o $(SRC_DIR)lsdmain.o \
$(SRC_DIR)report.o $(SRC_DIR)nets.o $(SRC_DIR)gis.o $(SRC_DIR)abmat.o
	$(CC) $(GLOBAL_CC) $(SWITCH_CC) $(FUN).o $(SRC_DIR)file.o $(SRC_DIR)main_gnuwin.o $(SRC_DIR)util.o \
	$(SRC_DIR)draw.o $(SRC_DIR)object.o $(SRC_DIR)set_all.o $(SRC_DIR)variab.o $(SRC_DIR)interf.o \
	$(SRC_DIR)show_eq.o $(SRC_DIR)runtime.o $(SRC_DIR)debug.o $(SRC_DIR)edit.o $(SRC_DIR)edit_dat.o \
	$(SRC_DIR)analysis.o $(SRC_DIR)lsdmain.o $(SRC_DIR)report.o $(SRC_DIR)nets.o $(SRC_DIR)gis.o $(SRC_DIR)abmat.o  \
	$(SWITCH_CC_LNK) -L$(PATH_TCL_LIB) $(TCL_LIB) -L$(PATH_TK_LIB) $(TK_LIB) -L$(PATH_LIB) $(LIBS) \
	-o $(TARGET)

$(SRC_DIR)file.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)file.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)file.cpp -o $(SRC_DIR)file.o

$(SRC_DIR)interf.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)interf.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)interf.cpp  -o $(SRC_DIR)interf.o

$(SRC_DIR)main_gnuwin.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)main_gnuwin.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)main_gnuwin.cpp -o $(SRC_DIR)main_gnuwin.o

$(SRC_DIR)util.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)util.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)util.cpp -o $(SRC_DIR)util.o

$(SRC_DIR)variab.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)variab.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)variab.cpp -o $(SRC_DIR)variab.o

$(SRC_DIR)object.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)object.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)object.cpp -o $(SRC_DIR)object.o

$(SRC_DIR)debug.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)debug.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)debug.cpp -o $(SRC_DIR)debug.o

$(SRC_DIR)edit.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)edit.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)edit.cpp -o $(SRC_DIR)edit.o

$(SRC_DIR)edit_dat.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt  $(SRC_DIR)edit_dat.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)edit_dat.cpp -o $(SRC_DIR)edit_dat.o

$(SRC_DIR)set_all.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)set_all.cpp $(SRC_DIR)nolh.h $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)set_all.cpp -o $(SRC_DIR)set_all.o

$(SRC_DIR)draw.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)draw.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)draw.cpp -o $(SRC_DIR)draw.o

$(SRC_DIR)analysis.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)analysis.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)analysis.cpp -o $(SRC_DIR)analysis.o

$(SRC_DIR)show_eq.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)show_eq.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)show_eq.cpp -o $(SRC_DIR)show_eq.o

$(SRC_DIR)runtime.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)runtime.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)runtime.cpp -o $(SRC_DIR)runtime.o

$(SRC_DIR)lsdmain.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)lsdmain.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)lsdmain.cpp -o $(SRC_DIR)lsdmain.o

$(SRC_DIR)report.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)report.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)report.cpp -o $(SRC_DIR)report.o

$(SRC_DIR)nets.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)nets.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)nets.cpp -o $(SRC_DIR)nets.o

$(SRC_DIR)gis.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)gis.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)gis.cpp -o $(SRC_DIR)gis.o
    
$(SRC_DIR)abmat.o: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)abmat.cpp $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC)  $(INCLUDE) -c $(SRC_DIR)abmat.cpp -o $(SRC_DIR)abmat.o

$(SRC_DIR)decl.h.gch: $(SRC_DIR)choose.h $(SRC_DIR)system_options.txt $(SRC_DIR)decl.h
	$(CC) $(GLOBAL_CC) $(SSWITCH_CC) $(INCLUDE) -c $(SRC_DIR)decl.h -o $(SRC_DIR)decl.h.gch

$(FUN).o: $(FUN).cpp $(FUN_EXTRA) $(SRC_DIR)choose.h model_options.txt $(SRC_DIR)fun_head.h $(SRC_DIR)fun_head_fast.h $(SRC_DIR)decl.h.gch
	$(CC) $(GLOBAL_CC) $(SWITCH_CC) $(INCLUDE) -c $(FUN).cpp
	
clean:
	rm $(SRC_DIR)*.o $(SRC_DIR)*.gch $(FUN).o $(TARGET)*
