
top = $(OMF_ROOT)

LIBRARIES = -L$(top)/lib
INCLUDES = -I$(top)

CXX = g++
CXXFLAGS = -g -Wall $(INCLUDES)

mod = \
	OMF \
	Object \
	Primitive \
	Integer \
	UnlimitedNatural \
	Boolean \
	String \
	Enumeration \
	Container \
	List \
	Set \
	Iterator \
	ConstIterator \
	ModelObject \
	Property \
	Method \
	Package \
	PackageService \
	Association \
	Model \
	ModelIterator \
	ModelService \
	XmiReader \
	XmiReader_1_2 \
	XmiReader_2_0 \
	XmiWriter \
	ReflectionService
obj = $(mod:%=%.o)
dep = $(mod:%=%.dep)
lib = $(top)/lib/libOMF.so
libs = -lxml2

%.o: %.cpp
	$(CXX) -c $(CXXFLAGS) -o $@ $<

%.dep: %.cpp
	$(CXX) -c -MM $(CXXFLAGS) -o $@ $<

all: $(lib)

$(lib): $(obj)
	$(CXX) -shared $(CXXFLAGS) -o $(lib) $(obj) $(libs)

depend: $(dep)
	echo "" > .deps
	for i in $(dep); do \
		cat $$i >> .deps; \
	done

clean:
	rm -f $(obj) $(dep) $(lib) *~

include .deps
