# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
#  This software is the proprietary information of Sun Microsystems, Inc.
#  Use is subject to license terms.
#  
#  Copyright 2004 Sun Microsystems, Inc.  Tous droits rservs.
#  Ce logiciel est proprit de Sun Microsystems, Inc.
#  Distribu par des licences qui en restreignent l'utilisation.
# 
# ident        "@(#)Makefile 1.9     04/08/05 SMI"
# 



# include any conf files
ROOT_DIR= ../../..
include ../jesmf_defs.mk

# Compiled library name:
LIBNAME=libmfCserver.so
#Short library name
LIBSHORTNAME=${LIBNAME:.so=}

# Define the libinstrum stucture from the BUILD_DEST location 
OBJDEST=${BUILD_DEST}/obj
LIBDEST=${BUILD_DEST}/lib
INCLUDE_DEST=${BUILD_DEST}/include

INCLUDE_DIR=../include

CFLAGS+=-I$(INCLUDE_DIR)  -I$(NSPR_LIB_PATH)/include -I/usr/include -I$(OBJDEST)
LIB_LDFLAGS+=-L$(LIBDEST)
# Here, XXX in fact nspr should be installed in a standard place
# ie. we now have a dependency on nspr, so our
# library should know where to find it.
ifeq (${OS}, SunOS)
LIB_LDFLAGS+=-h $(LIBNAME) -L$(NSPR_LIB_SUNOS_PATH) -R $(RT_LINKER_PATH_SUNOS) -M mapfile
endif
ifeq (${OS}, Linux)
LIB_LDFLAGS+=-L$(NSPR_LIB_LINUX_PATH) -Wl,-rpath,$(RT_LINKER_PATH_LINUX) -Wl,-h$(LIBNAME) -Wl,--version-script,mapfile
endif
LIBS+=-lc -lpthread -lnsl -lrt -l$(NSPR_LIB_NAME) -lplds4 -lmfRserver

# List of .c files to compile:
CFILES=  mfCserver.c  Service_server.c convert.c    

#INCLUDES=$(INCLUDE_DIR)/mfCserver.h

# List of .o object files to generate:
OFILES=${CFILES:.c=.o}
OBJS = $(addprefix $(OBJDEST)/, $(OFILES))



all: import $(LIBDEST) $(OBJDEST) $(LIBDEST)/$(LIBNAME) 

$(OBJDEST)/%.o: %.c 
	$(CC) $(CFLAGS) -o $@ $<

$(LIBDEST)/$(LIBNAME):  $(LIBDEST) $(OBJDEST) $(OBJDEST)/Service_xdr.o $(OBJDEST)/Service_svc.o $(OBJS) \
	$(INCLUDES) Makefile
	$(CC) $(LIB_LDFLAGS) $(LIBS) -o $@ $(OBJS) $(OBJDEST)/Service_xdr.o $(OBJDEST)/Service_svc.o


$(OBJDEST):
	$(MKDIR) -p $@

$(LIBDEST):
	$(MKDIR) -p $@

clean:
	-$(RM) -rf $(OBJDEST)
	-$(RM) -rf $(LIBDEST)/$(LIBNAME)
	-$(RM) -rf $(SRC_C_DEST)/cserver


# build dist directory 
$(DIST_DEST)/lib:
	$(MKDIR) -p $@


dist: cp_src all $(DIST_DEST)/lib  $(LIBDEST)/$(LIBNAME)  $(DIST_DEST)/nspr/include  $(DIST_DEST)/nspr/lib
	$(CP) $(LIBDEST)/$(LIBNAME) $(DIST_DEST)/lib


$(DIST_DEST)/nspr/include:
	$(MKDIR) -p $@
	cp -r $(NSPR_LIB_PATH_REF)/include/* $@


$(DIST_DEST)/nspr/lib:
	$(MKDIR) -p $@
	cp -r $(NSPR_LIB_PATH_REF)/lib/* $@




#build import directory
$(NSPR_LIB_PATH)/include:
	$(MKDIR) -p $@
	cp -r $(NSPR_LIB_PATH_REF)/include/* $(NSPR_LIB_PATH)/include

$(NSPR_LIB_PATH)/lib:
	$(MKDIR) -p $@
	cp -r $(NSPR_LIB_PATH_REF)/lib/* $(NSPR_LIB_PATH)/lib	

import: $(NSPR_LIB_PATH)/lib $(NSPR_LIB_PATH)/include

all1:
	@echo
	@echo The following are build targets that you can choose from:
	@echo
	@echo "   make all"
	@echo "   make clean"



$(OBJDEST)/Service.h: Service.x $(OBJDEST)
	$(RPCGEN) -C -N -h Service.x > $(OBJDEST)/Service.h
	$(AWK) -f Service_h.awk $(OBJDEST)/Service.h > $(OBJDEST)/Service.h.tmp$$
	$(CP) $(OBJDEST)/Service.h.tmp$$ $(OBJDEST)/Service.h
	$(BASH) Service_h.bash $(OBJDEST)/Service.h
	$(RM) -f $(OBJDEST)/Service.h.tmp$$

$(OBJDEST)/Service_svc.c: Service.x $(OBJDEST)/Service.h $(OBJDEST)
	$(RPCGEN) -C -N -s tcp Service.x > $(OBJDEST)/Service_svc.c
	$(BASH) main.bash $(OBJDEST)/Service_svc.c
	$(AWK) -f Service_svc_c.awk $(OBJDEST)/Service_svc.c > $(OBJDEST)/Service_svc.c.tmp
	$(CP) $(OBJDEST)/Service_svc.c.tmp $(OBJDEST)/Service_svc.c
	$(RM) -f $(OBJDEST)/Service_svc.c.tmp

$(OBJDEST)/Service_svc.o: $(OBJDEST)/Service_svc.c
	$(CC) $(CFLAGS) -o $(OBJDEST)/Service_svc.o $(OBJDEST)/Service_svc.c 

$(OBJDEST)/Service_xdr.c: Service.x $(OBJDEST) $(OBJDEST)/Service.h
	$(RPCGEN) -C -N -c Service.x > $(OBJDEST)/Service_xdr.c

$(OBJDEST)/Service_xdr.o: $(OBJDEST)/Service_xdr.c
	$(CC) $(CFLAGS) -o $(OBJDEST)/Service_xdr.o $(OBJDEST)/Service_xdr.c

$(SRC_C_DEST)/cserver:
	$(MKDIR) -p $@	

cp_src:	$(SRC_C_DEST)/cserver              
	cp Makefile $(SRC_C_DEST)/cserver
	cp Service_h.awk $(SRC_C_DEST)/cserver
	cp Service_h.bash $(SRC_C_DEST)/cserver  
	cp Service_server.c $(SRC_C_DEST)/cserver
	cp Service_svc_c.awk $(SRC_C_DEST)/cserver
	cp convert.c $(SRC_C_DEST)/cserver  
	cp main.bash $(SRC_C_DEST)/cserver
	cp mfCserver.c $(SRC_C_DEST)/cserver


