
AR = ar clq
LD = ld
LN = ln -sf
RANLIB = ranlib
RM = rm -f
CC = gcc  
_NULLCMD_ = @ echo -n
CCOPTIONS = 
CPP = g++
CPPOPTIONS =
DEPEND = mkdep

TOP = ../..
PARHELIUX = $(TOP)/../..
MTXVXD = ../mtxvxd

INCLUDES  = -I$(MTXVXD)/Include -I$(LNXTREE) -I$(TOP)
DEFINES = -D__NO_VERSION__

SUBDIRS = 

CFLAGS    += $(MODCFLAGS) $(DEFINES)

# **** Parse config file

include $(TOP)/config.mk

ifeq ($(CFG_DEBUG), YES)
CFLAGS += -DDEBUG -g -O
else
CFLAGS += -O3
endif

# **** Sources and rules

OBJS = new.o pure.o     # global_xxx.o are included here cause they need to be linked precisely
                        # on the final link at the beginning/end of the object file list.

all: Makefile global_beg.o global_end.o mtxc++.a 

mtxc++.a: Makefile $(OBJS) $(global)
	$(RM) $@
	$(AR) $@ $(OBJS)
	$(RANLIB) $@
	$(_NULLCMD_)

mtxc++.o: Makefile $(OBJS)
	$(LD) -r $(OBJS) -o $@

global_beg.o: global.c mtxc++.h 
	$(CC) $(WARNINGS) $(CFLAGS) $(INCLUDES) -D__GLOBAL_BEGIN__ -c $< -o $@

global_end.o: global.c mtxc++.h 
	$(CC) $(WARNINGS) $(CFLAGS) $(INCLUDES) -D__GLOBAL_END__ -c $< -o $@
	
%.o: %.c mtxc++.h
	$(CC) $(WARNINGS) $(CFLAGS) $(INCLUDES) -c $< -o $@
        
%.o: %.cpp mtxc++.h
	$(CXX) $(WARNINGS) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -c $< -o $@
        
clean::
	$(RM) *.o *.a

depend:
	$(DEPEND) $(INCLUDES) $(DEFINES) $(CPPFLAGS) $(wildcard *.cpp) $(wildcard *.c)
