(file) Return to make.include CVS log (file) Jump to this file's LXR Page (dir) Up to [CENS] / emstar / fusd / external

File: [CENS] / emstar / fusd / external / make.include (download)
Revision: 1.2, Sat Sep 29 18:27:16 2001 UTC (8 years, 1 month ago) by jelson
Branch: MAIN
CVS Tags: scale_radio_channel, rdd_alpha_version_1, pregeonet, nims-lab-Sep07-2004, nims-jr-Sep05-04, mote, lessgps_release, kiss_release, fusd_with_no_daemon, fusd_1-1_devel, fusd-1_10, fusd-1_04, fusd-1_03, fusd-1_02, copyright-07-11-03, bp_scale_radio_channel, audio_server, acoustic-05-18-06, ROUTING_EXPERIMENTAL, PRE_TOSNIC_FIX, PRE_NOMEGA_MOTENIC, PRE_MOTENIC_CLEANUP, PRE_CEILING_FIX, PRE_64BIT, MOTENIC_PRE_BUGFIX_20050415, LESSGPS_1_00, LAURA_CALIBRATION_EXPERIMENTS, KISS_1_0, HOSTMOTE_V_6_EXPERIMENTAL, HOSTMOTE_PROTOCOL_VERSION_7, HOSTMOTE_PROTOCOL_VERSION_6_WITH_HOSTMOAP, HOSTMOTE_PROTOCOL_VERSION_5_WITH_HOSTMOAP, HOSTMOTE_PROTOCOL_VERSION_5, HOSTMOTE_PROTOCOL_VERSION_4, HOSTMOTE_PROTOCOL_VERSION_3, HEAD, ESS_RELEASE_3_5, ESS_RELEASE_3_4, ESS_RELEASE_3_3, ESS_RELEASE_3_2, ESS_RELEASE_3_1, ESS_RELEASE_3_0, ESS_RELEASE_2_0, ESS_CONNECTIVITY, ESS_CENTROUTE_TESTING, ESS2-CMS-V1_5_pretest, ESS2-CMS-V1_4cMergeSympathy_2, ESS2-CMS-V1_4c, ESS2-CMS-V1_4b, ESS2-CMS-V1_4a, ESS2-CMS-V1_3, ESS2-CMS-V1_2, ESS2-CMS-V1_1, ESS2-CMS-V1_0, EMSTAR_RELEASE_2_5, EMSTAR_RELEASE_2_1_BRANCH, EMSTAR_RELEASE_2_1, EMSTAR_RELEASE_2_0_beta1, EMSTAR_RELEASE_2_0, EMSTAR_RELEASE_1_3_2, EMSTAR_RELEASE_1_3_1, EMSTAR_RELEASE_1_3, EMSTAR_RELEASE_1_2, EMSTAR_RELEASE_1_1, EMSTAR_RELEASE_1_0, EMSTAR_PRE_HTML, CYCLOPS_RELEASE_CANDIDATE_2_0, CYCLOPS_PRERELEASE_STABLE, CENTROUTE_EMSTAR_SOCKETS, BG_1_0, BANGLADESH_ARSENIC_1_2, BANGLADESH_ARSENIC_1_1, AMARSS_JR_DEPLOYMENT_6_05_07
Branch point for: EVENT_DEVEL
Changes since 1.1: +1 -1 lines
removed -DVEHICLE from external make.include


# auto-dependency generation makefile


#### Default values

SRCEXTENSIONS := c C cpp
CC := gcc
CPP := g++
LD := ld
AR := ar

#### build object directory token 

CPU := $(shell uname -m)
OS := $(shell uname -s | tr '[A-Z]' '[a-z]')

DEFAULT_ARCH := $(CPU)-$(OS)

ifeq ($(strip $(ARCH)),)
	ARCH := $(DEFAULT_ARCH)
endif

OBJTOKEN := obj.$(ARCH)

#
#  Under most circumstances, paths are simple
#

ifeq ($(POSTROOT),..)
	MODPATH := .
	OBJDIR := $(OBJTOKEN)
else
	MODPATH := $(POSTROOT)/$(MODULENAME)
	OBJDIR := $(MODPATH)/$(OBJTOKEN)
endif


#
# Directories
#

MODLIBS := \
	-L$(OBJDIR) \
	$(foreach dir, $(MODULES), -L$(POSTROOT)/$(dir)/$(OBJTOKEN))
MODINCLUDES := \
	-I$(MODPATH)/include \
	$(foreach dir, $(MODULES), -I$(POSTROOT)/$(dir)/include)
ALLTARGETS := \
	$(foreach targ, $(TARGETS), $(OBJDIR)/$(targ))
VPATH := \
	$(MODPATH)/include \
	$(foreach dir, $(SRCDIRS), $(MODPATH)/$(dir)) \
	$(foreach dir, $(MODULES), $(POSTROOT)/$(dir)/include)


#### include paths

LIBPATH := $(MODLIBS)
INCLUDEPATH += -I. -Iinclude $(MODINCLUDES)
KCFLAGS = -O2 \
 -Wall -Werror -Wstrict-prototypes \
 -fno-strict-aliasing -fomit-frame-pointer \
 -DMODULE -D__KERNEL__ 

CFLAGS :=  -fPIC -Wall -O2 -g
CCFLAGS := -Werror
CPPFLAGS := -ftemplate-depth-30

#### Architecture deps

KERNEL_INCLUDE := $(KERNEL_HOME)/include
BINSTRIP := strip

KCFLAGS += -I$(KERNEL_INCLUDE) $(INCLUDEPATH)
CFLAGS += $(INCLUDEPATH) $(LIBPATH)

CCFLAGS += $(CFLAGS)
CPPFLAGS += $(CFLAGS)

#
#  targets
# 

default:	$(ALLTARGETS)

####################################################


#
#  Dependency generation
#


# Get list of all source files
SOURCES := \
	$(notdir $(wildcard \
		$(foreach dir, $(SRCDIRS), \
			$(foreach ext, $(SRCEXTENSIONS), $(dir)/*.$(ext)))))

# Convert all .c, .cpp, .C to .d
SRC_AND_DEPENDS := $(foreach ext, $(SRCEXTENSIONS),\
	$(patsubst %.$(ext),%.d,$(SOURCES)))

DEPENDS := $(foreach file, $(filter %.d,$(SRC_AND_DEPENDS)), $(OBJDIR)/$(file))



BASE = $(subst /,\/,$*)
ODIR = $(subst /,\/,$(OBJDIR))

# This magic is from the 'make' manual (with mods by jelson)
$(OBJDIR)/%.d: %.c 
	@mkdir -p $(OBJDIR)
	set -e; $(CC) -MM -I$(KERNEL_INCLUDE) $(CFLAGS) $< \
	| sed 's/\($(BASE)\)\.o[ :]*/$(ODIR)\/$(BASE).o $(ODIR)\/$(BASE).d : /g' > $@; \
	[ -s $@ ] || rm -f $@

$(OBJDIR)/%.d: %.C 
	@mkdir -p $(OBJDIR)
	set -e; $(CC) -MM $(CPPFLAGS) $< \
	| sed 's/\($(BASE)\)\.o[ :]*/$(ODIR)\/$(BASE).o $(ODIR)\/$(BASE).d : /g' > $@; \
	[ -s $@ ] || rm -f $@

$(OBJDIR)/%.d: %.cpp 
	@mkdir -p $(OBJDIR)
	set -e; $(CC) -MM $(CPPFLAGS) $< \
	| sed 's/\($(BASE)\)\.o[ :]*/$(ODIR)\/$(BASE).o $(ODIR)\/$(BASE).d : /g' > $@; \
	[ -s $@ ] || rm -f $@


#
# Rules
#

$(OBJDIR)/%.o: %.cpp
	$(CPP) $(CPPFLAGS) $< -c -o $@

$(OBJDIR)/%.o: %.C
	$(CPP) $(CPPFLAGS) $< -c -o $@

$(OBJDIR)/%.o: %.c
	$(CC) $(CCFLAGS) $< -c -o $@

clean:
	rm -f $(ALLTARGETS) $(OBJDIR)/*.[oa] $(OBJDIR)/*.so.* $(DEPENDS)


include $(DEPENDS)

CENS CVS Mailing List
Powered by
ViewCVS 0.9.2