#Basic things
PACKAGE_NAME = ogo
PACKAGE_VERSION = \"0.1.3\"
PACKAGE_VERSION_DBG = \"0.1.3-dbg\"

# Compiler and Linker
CC = g++
LD = g++
AR = ar -rus
DEP = g++ -MM

#	$Id: Makefile,v 1.10 2005/11/02 09:24:05 olethros Exp $	

# Libraries

MYLIBS = 

# Flags

## Use DBG to compile a debug version.

#DBG_OPT=DBG
DBG_OPT=OPT

# Add -pg flag for profiling
CFLAGS_DBG = -g -Wall -pedantic -DVERSION=$(PACKAGE_VERSION_DBG)
CFLAGS_OPT = -O3 -Wall -pedantic -DVERSION=$(PACKAGE_VERSION) -pg
CFLAGS=$(CFLAGS_$(DBG_OPT))

# DIRECTORIES - You might want to change those

LIB_DIR_DBG=lib_dbg
LIB_DIR_OPT=lib
LIB_DIR_NAME=$(LIB_DIR_$(DBG_OPT))
OBJ_DIR_DBG=objs_dbg
OBJ_DIR_OPT=objs
OBJ_DIR_NAME=$(OBJ_DIR_$(DBG_OPT))

LIB_OPT_DIR=$(LIB_DBG)

OGO_DIR := $(shell pwd)
BINDIR = $(OGO_DIR)/bin
BIN_INSTALL_DIR = $(HOME)/bin
LIBS_DIR = $(OGO_DIR)/$(LIB_DIR_NAME)
OBJS_DIR = $(OGO_DIR)/$(OBJ_DIR_NAME)
LIBOGO = $(LIBS_DIR)/libogo.a
LIBOGOXX = $(LIBS_DIR)/libogo++.a
LIBS = -L$(LIBS_DIR) -logo
INC := -I$(OGO_DIR)
# -lnjamd -lefence - add either for debugging

C_FILES := $(wildcard *.c)
OBJS := $(foreach f,$(C_FILES),$(OBJS_DIR)/$(patsubst %.c,%.o,$(f)))

all: $(LIBOGO)

$(LIBOGO): $(OBJS)
	@echo "Archiving..."
	@mkdir -p $(LIBS_DIR)
	@$(AR) $(LIBOGO) $(OBJS)

$(OBJS_DIR)/%.o: %.c
	@mkdir -p $(OBJS_DIR)
	@echo $<
	@$(CC) $(CFLAGS) $(INC) -o $@ -c $<

distclean:
	@\rm -f .deps_*
	@\rm -f *~
	@\rm -f *.out

clean:
	@echo "Cleaning up..."
	@\rm -Rf $(OBJS) $(LIBOGO)
	@\rm -f .deps


depend:
	@echo "Generating dependencies..."
	@\rm -f .deps
	@for file in *.c; do printf "$(OBJS_DIR)/" >> .deps; $(DEP) $(INC) $$file >> .deps; done

.deps:
	@echo ">>> plase do a 'make depend' <<<"
	exit 10

ifneq ($(MAKECMDGOALS),distclean)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),depend)
include .deps
endif
endif
endif

%: %.c
	@mkdir -p $(BINDIR)
	${MAKE}
	$(CC) -DMAKE_MAIN $(CFLAGS) $(INC) -o $(BINDIR)/$@ $< $(LIBS)

install:
	@mkdir -p $(BIN_INSTALL_DIR)
	cp $(BINDIR)/* $(BIN_INSTALL_DIR)
