# Make command to use for dependencies
MAKECMD=make

# If no configuration is specified, "Debug" will be used
ifndef "CFG"
CFG=Release
endif

#
# Configuration: Debug
#
ifeq "$(CFG)" "Debug"
OUTDIR=Debug
OUTFILE=$(OUTDIR)/emaildt.so
CFG_INC=-I /usr/include/pgsql/server
CFG_LIB=
CFG_OBJ=
COMMON_OBJ=$(OUTDIR)/email.o 
OBJ=$(COMMON_OBJ) $(CFG_OBJ)

COMPILE=gcc -c -Wall -fPIC -g -o "$(OUTDIR)/$(*F).o" $(CFG_INC) "$<"
LINK=gcc -g -fPIC -Wall -shared -o "$(OUTFILE)" $(OBJ) $(CFG_LIB)

# Pattern rules
$(OUTDIR)/%.o : %.c
	$(COMPILE)

$(OUTDIR)/%.o : %.cpp
	$(COMPILE)

# Build rules
all: $(OUTFILE)

$(OUTFILE): $(OUTDIR)  $(OBJ)
	$(LINK)

$(OUTDIR):
	mkdir -p "$(OUTDIR)"

# Rebuild this project
rebuild: cleanall all

# Clean this project
clean:
	rm -f $(OUTFILE)
	rm -f $(OBJ)

# Clean this project and all dependencies
cleanall: clean
endif

#
# Configuration: Release
#
ifeq "$(CFG)" "Release"
OUTDIR=Release
OUTFILE=$(OUTDIR)/emaildt.so
CFG_INC=-I /usr/include/pgsql/server
CFG_LIB=
CFG_OBJ=
COMMON_OBJ=$(OUTDIR)/email.o 
OBJ=$(COMMON_OBJ) $(CFG_OBJ)

COMPILE=gcc -c -Wall -fPIC -o "$(OUTDIR)/$(*F).o" $(CFG_INC) "$<"
LINK=gcc  -shared -Wall -fPIC -o "$(OUTFILE)" $(OBJ) $(CFG_LIB)

# Pattern rules
$(OUTDIR)/%.o : %.c
	$(COMPILE)

$(OUTDIR)/%.o : %.cpp
	$(COMPILE)

# Build rules
all: $(OUTFILE)

$(OUTFILE): $(OUTDIR)  $(OBJ)
	$(LINK)

$(OUTDIR):
	mkdir -p "$(OUTDIR)"

# Rebuild this project
rebuild: cleanall all

# Clean this project
clean:
	rm -f $(OUTFILE)
	rm -f $(OBJ)

# Clean this project and all dependencies
cleanall: clean
endif
