# generic makefile for atoms for (gcc)
# runs under DOS and OS/2
#
TARGET_NAME = libatoms.a

GCC=gcc
FLAGS=-Wall -O2 -I./include/ -fno-rtti -fno-exceptions
#FLAGS+=-DERROR_HANDLER
OBJ=.o

OBJECTS=struct$(OBJ)

%OBJECTS=containe$(OBJ)
OBJECTS+=dbllist$(OBJ)
OBJECTS+=sets$(OBJ)
OBJECTS+=std_str$(OBJ)
OBJECTS+=struct$(OBJ)
OBJECTS+=lists$(OBJ)
OBJECTS+=strings$(OBJ)
OBJECTS+=stack$(OBJ)

OBJECTS+=utf8$(OBJ)
OBJECTS+=mtx_impl$(OBJ)


.SUFFIXES: .c .cc $(OBJ) .exe .a

.cc$(OBJ):
	$(GCC) $(FLAGS) $(DEBUG) -c $*.cc $(ERROR) -o $*$(OBJ) $(GETTEXT)

.c$(OBJ):
	$(GCC) $(FLAGS) $(DEBUG) -c $*.c $(ERROR) -o $*$(OBJ) $(GETTEXT)


$(TARGET_NAME): $(OBJECTS)
	ar rcs $(TARGET_NAME) $(OBJECTS)


struct$(OBJ):	struct.c
utf8$(OBJ):	utf8.c

%complex$(OBJ):	complex.cc
containe$(OBJ):	containe.cc
interval$(OBJ):	interval.cc include/interval.h
std_str$(OBJ):	std_str.cc include/std_str.h
stack$(OBJ):	stack.cc include/stacks.h
sets$(OBJ):	sets.cc include/sets.h
strings$(OBJ):	strings.cc include/strings.h

all:     $(TARGET_NAME)
#	cp -f strings/*.h include/*.h
#	cp -f sets/*.h include/*.h


default: $(TARGET_NAME)


clean:
	rm -f $(TARGET_NAME) *.exe *$(OBJ) *.obj *.o *.bak core *.bak *.bkp *.a
	rm -f include/*.bak include/*.bkp

distclean: clean
	cp makefile.gen makefile
	cp include/common.h.gen include/common.h

generic:
	rm makefile
	cp makefile.gen makefile
	cp include/common.h.gen include/common.h



