#
#	MAKEFILE for generating binaries of different flavors.
#

#  Standard programs
RM = /bin/rm
CP = /bin/cp
MAKE = /usr/local/bin/make
CC = /bin/cc
MKDIRS = /bin/mkdirs

#  Architectures
ARCH_FLAGS = -arch m68k -arch i386

#  Installdirs
INSTALL_LIB_DIR = $(WSCSRC)/lib
INSTALL_H_DIR = $(WSCSRC)/include/$(BASE_LIB)
INSTALL_DOC_DIR = $(WSCSRC)/documentation/libraries/$(BASE_LIB)

#  Misc.
GARBAGE=*~*~ *~

#  Linkdir
LINK_DIR = $(BASE_LIB)

#  Source files
CFILES = absolute.c julian.c unix.c misc.c thirty_360.c
MFILES = 

#  Header files to install
HFILES = time/time.h

#  Makefile
MAKEFILE = Makefile

#  Base definitions and defaults
BASE_LIB = time
BASE_CFLAGS = -Wall $(EXTRA_BASE_CFLAGS) $(ARCH_FLAGS) -I$(WSCSRC)/include -I.

#  Options/Flavors
PRODUCTION = production
DEBUG = debug
#  Default flavor
FLAVOR = $(DEBUG)

LIB = $(BASE_LIB)$(LIB-$(FLAVOR))
LIB-$(PRODUCTION) =
LIB-$(DEBUG) = _dbg

CFLAGS = $(BASE_CFLAGS) $(CFLAGS-$(FLAVOR))
CFLAGS-$(PRODUCTION) = -O 
CFLAGS-$(DEBUG) = -g -DDEBUG

OBJECT_DIR = lib$(LIB)_obj

#  Rules for generating .o files from C and Objective C source code.

.SUFFIXES: .c .m
$(OBJECT_DIR)/%.o : %.c
	$(CC) $(CFLAGS) -o $@ -c $<
$(OBJECT_DIR)/%.o : %.m
	$(CC) $(CFLAGS) -o $@ -c $<

#  Lists
FLAVORS = $(PRODUCTION) $(DEBUG)

OFILES = $(COFILES) $(MOFILES)
MOFILES = $(MFILES:%.m=$(OBJECT_DIR)/%.o)
COFILES = $(CFILES:%.c=$(OBJECT_DIR)/%.o)

help:
	@echo "Valid targets: all (production and debug libraries)"
	@echo "               lib"
	@echo "               debug_lib"
	@echo "               clean"
	@echo "               install (all libraries)"
	@echo "               docs (installs documentation)"
	@echo "               help"

all: 
	@$(MAKE) library "FLAVOR=debug"
	@$(MAKE) library "FLAVOR=production"

lib: 
	@$(MAKE) library "FLAVOR=production"

debug_lib:
	@$(MAKE) library "FLAVOR=debug"

library: links $(OBJECT_DIR) $(OFILES) $(MAKEFILE) 
	-$(RM) $(OBJECT_DIR)/lib$(LIB).a
	ar rc $(OBJECT_DIR)/lib$(LIB).a $(OFILES)
	ranlib $(OBJECT_DIR)/lib$(LIB).a

install: lib debug_lib install_dirs
	@$(MAKE) installation "FLAVOR=production"
	@$(MAKE) installation "FLAVOR=debug"

installation:
	-$(CP) $(OBJECT_DIR)/lib$(LIB).a $(INSTALL_LIB_DIR)
	ranlib $(INSTALL_LIB_DIR)/lib$(LIB).a
	-$(CP) $(HFILES) $(INSTALL_H_DIR)

docs: doc_dir
	-$(CP) -r documentation/* $(INSTALL_DOC_DIR) ;\
	find $(INSTALL_DOC_DIR) -name "CVS" -print -exec $(RM) -r {} \; ;\
	ixbuild -fsv -LEnglish $(INSTALL_DOC_DIR)

clean:
	-$(RM) -r lib$(BASE_LIB)*_obj
	-$(RM) $(GARBAGE)

$(OBJECT_DIR):
	-$(MKDIRS) $(OBJECT_DIR)

install_dirs:
	-$(MKDIRS) $(INSTALL_LIB_DIR)	
	-$(MKDIRS) $(INSTALL_H_DIR)

links:

doc_dir:
	$(MKDIRS) $(INSTALL_DOC_DIR)




