# Makefile automatically generated by rcsdesign on
# Sun Mar 06 10:46:50 EST 2005 for /home/shackle/rcslib/examples/rcs_single_dir

# Set the main RCS Library Directory
ifndef RCSLIB_DIR
RCSLIB_DIR=../..
endif

ifdef PLAT
PLAT_INC_FLAG=-I$(RCSLIB_DIR)/plat/$(PLAT)/include
PLAT_LIB_FLAG=-L$(RCSLIB_DIR)/plat/$(PLAT)/lib
endif

ifeq ($(MSYSTEM),MINGW32)
EXTRA_LIBS:=$(EXTRA_LIBS) -lws2_32
endif

ifeq ($(TERM),cygwin)
EXTRA_LIBS:=$(EXTRA_LIBS) -lws2_32
endif


CPPFLAGS:=$(CPPFLAGS) -I $(RCSLIB_DIR)/include -I /usr/local/include  $(PLAT_INC_FLAG)  -I ../../src -I ../../src/os_intf  -I ../../src/posemath -I ../../src/cms -I ../../src/node -I ../../src/print -I ../../src/stg_clss 


LIBS:=$(LIBS) -L$(RCSLIB_DIR)/lib -L/usr/local/lib -L$(RCSLIB_DIR)/.libs -L$(RCSLIB_DIR) $(PLAT_LIB_FLAG) -lrcs -lposemath $(EXTRA_LIBS)

ifndef JAVA
JAVA=java
endif

ifndef RANLIB
RANLIB=ranlib
endif

ifndef AR
AR=ar
endif

ifndef CXX
CXX=g++
endif

ifndef NML_CODEGEN
NML_CODEGEN=$(JAVA) -jar $(RCSLIB_DIR)/plat/java/lib/CodeGenCmdLine.jar 
endif

APPNAME=rcs_single_dir
SVRS =  rcs_single_dir  robot_super  wm  sp  bgprimservo 
LOOPS =  bg  prim  rcs_single_dir  robot_super  servo  sp  wm 
SVRS =  robot_super  sp  wm  bgprimservo 
LOOPS =  bg  prim  robot_super  servo  sp  wm 
MODULES =  bg  prim  robot_super  servo  sp  wm 
NMLS = my_app_common_status \
  bg  pose_data  obstacle_map  prim  robot_super  servo  sp  sensor_data  wm servo_stat_cfg servo_cmd_set 


SERVERS_LIST=$(SVRS:%=%svr)
MAINS_LIST=$(LOOPS:%=%main)
MODULES_O_LIST=$(MODULES:%=%_module.o)
NML_O_LIST=$(NMLS:%=%n_n.o)
NML_A=lib$(APPNAME)_nml.a
MODULE_A=lib$(APPNAME)_module.a

all: $(SERVERS_LIST) $(MAINS_LIST)

.PHONY: all

.PRECIOUS: %n_n.cc

%n_n.cc: %n.hh
	$(NML_CODEGEN) $^

$(NML_A): $(NML_O_LIST)
	$(AR) cr $@ $^ 
	$(RANLIB) $@

$(MODULE_A): $(MODULES_O_LIST)
	$(AR) cr $@ $^ 
	$(RANLIB) $@

%svr: %svr.o $(NML_A)
	$(CXX) $^ $(LIBS) $(CXXFLAGS) -o $@

%main: %main.o $(MODULE_A) $(NML_A)
	$(CXX) $^ $(LIBS) $(CXXFLAGS) -o $@

clean:
	-\rm -f *n_n.cc *.o lib*.a lib*.so lib*.la *.lib *.ddll *.obj *.exe *main *svr

.PHONY: clean

