#  
# Makefile for Brutus test/sample client code.
# Copyright (C) 2004-2007 OMC Denmark ApS.
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.


LOCAL_MAKE_ROOT := $(shell pwd)/..
IDL_OUTPUT_DIR := $(LOCAL_MAKE_ROOT)/idl_output
ifndef TOP_INVOKED
    CC := gcc
    OPT = -Os 
    DEBUG := -g -O0
    CFLAGS := -Wall -DORBIT2=1 -D_REENTRANT $(DEBUG)
    LDFLAGS= -Wl,--export-dynamic -lORBit-2 -lgmodule-2.0 -ldl -lgobject-2.0 -lpthread -lgthread-2.0 -lglib-2.0 -lm
    TOP_MAKE_ROOT := $(shell pwd)/../..
    IDL_ROOT := $(TOP_MAKE_ROOT)/..
    INCLUDE := -I$(LOCAL_MAKE_ROOT) -I/usr/include/orbit-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
endif
PROG := ./brutus_client

# files
SOURCE := main.c
OBJS   := main.o

# Helper class object files. Each helper class has
# its own Makefile that produce the object files
CLASS_OBJS := $(LOCAL_MAKE_ROOT)/bresult/bresult.o \
              $(LOCAL_MAKE_ROOT)/proptags/proptag.o \
              $(LOCAL_MAKE_ROOT)/brutus_utils/brutus_utils.o \
              $(LOCAL_MAKE_ROOT)/config/config.o \
              $(LOCAL_MAKE_ROOT)/init_orb/init_orb.o \
              $(LOCAL_MAKE_ROOT)/servant_impl/servant_utils.o

STUB_OBJS := $(wildcard $(IDL_OUTPUT_DIR)/*-stubs.o) \
             $(wildcard $(IDL_OUTPUT_DIR)/*-common.o) \
             $(wildcard $(LOCAL_MAKE_ROOT)/servant_impl/*-skels.o)


all : $(OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDE) $(OBJS) $(CLASS_OBJS) $(STUB_OBJS) -o $(PROG)


$(OBJS) : $(SOURCE) 
	$(CC) $(CFLAGS) $(INCLUDE) -c $^ -o $@

clean:
	-rm $(OBJS) *~ $(PROG) 


.PHONY: all clean

