diff --git a/Make/makedefs.new b/Make/makedefs.new index bbe1b2037..4c909a80c 100644 --- a/Make/makedefs.new +++ b/Make/makedefs.new @@ -1,68 +1,27 @@ +SHELL = /bin/sh +OS := $(shell uname) # TOPDIR needs to be redefined for every Makefile TOPDIR ?= ../ THISDIR = . MAKEDEPEND = Makedepend -SHELL = /bin/sh -OSTYPE := $(shell uname) -OS := $(shell uname) +INC = -I$(TOPDIR)/include +DEF = -INC = -I$(TOPDIR)/include -DEF = +CXXFLAGS = $(ARCHARGS) $(DOF) $(DEF) $(INC) +LDFLAGS = $(ARCHARGS) $(DOF) $(LINKARGS) -L$(TOPDIR)/lib +OBJS = $(C++FILES:.cpp=.o) \ + $(CXXFILES:.cpp=.o) \ + $(CFILES:.c=.o) \ -#### SUN OS Specific definitions -ifeq ($(OS),SunOS) - C++ = CC - DEPFLAGS = -xM1 - INC += - DEF += -features=extensions - OPTF = -xO2 - DBGF = -g - SHARED = -G - ARCHARGS = - LINKERARGS = - DYNAMICLIBRARYLIB = -ldl - OSG_LIBS = -losgGLUT -losgDB -losgUtil -losg - GLUT_LIB = -lglut - GL_LIBS = -lGLU -lGL - X_LIBS = -lXext -lXmu -lXi -lX11 - SOCKET_LIBS = -lsocket -lnsl - OTHER_LIBS = -lCstd -endif - -#### IRIX Specific definitions -ifeq ($(OS),IRIX) - C++ = CC - CXXFLAGS = $(DOF) $(INC) -LANG:std -OPT:Olimit=0 -DEBUG:wof=1682 -DEBUG:woff=3303 - LDFLAGS = $(DOF) -L$(TOPDIR)/lib -LANG:std - DEPFLAGS = -MDupdate $(MAKEFILE) -endif - -#### Linux specific definitions -ifeq ($(OS),Linux) - C++ = g++ - CXXFLAGS = $(DOF) -W -Wall $(INC) - LDFLAGS = $(DOF) -W -Wall -L/usr/X11R6/lib -L$(TOPDIR)/lib - DEPFLAGS = -M -endif - - -OBJS = $(C++FILES:.cpp=.o) $(CXXFILES:.cpp=.o) $(CFILES:.c=.o) $(YACCFILES:.y=.o) $(LEXFILES:.l=.o) DOF = $(OPTF) -CXXFLAGS = $(DOF) $(DEF) $(INC) - -INC += - DEBUGDIR = $(OS).Debug OPTDIR = $(OS).Opt BININST = bin LIBINST = lib PLUGININST = lib/osgPlugins -LIBS = -LDFLAGS = $(DOF) -L$(TOPDIR)/lib - ALL_TARGETS = \ opt\ debug\ @@ -74,6 +33,61 @@ ALL_TARGETS = \ docs\ depend\ +#### SUN OS Specific definitions +ifeq ($(OS),SunOS) + + C++ = CC + DEPARG = -xM1 + INC += + DEF += -features=extensions + OPTF = -xO2 + DBGF = -g + SHARED = -G + ARCHARGS = + LINKARGS = + DYNAMICLIBRARYLIB = -ldl + OSG_LIBS = -losgGLUT -losgDB -losgUtil -losg + GLUT_LIB = -lglut + GL_LIBS = -lGLU -lGL + X_LIBS = -lXext -lXmu -lXi -lX11 + SOCKET_LIBS = -lsocket -lnsl + OTHER_LIBS = -lCstd + SO_EXT = so + PLUGIN_EXT = so + +endif + +#### IRIX Specific definitions +ifeq ($(OS),IRIX) + + C++ = CC + DEPFLAGS = -M + INC += + DEF += -LANG:std -OPT:Olimit=0 \ + -DEBUG:wof=1682 -DEBUG:woff=3303\ + -MDupdate $(MAKEDEPEND) + OPTF = -O2 + DBGF = -g + SHARED = -shared + ARCHARGS = + LINKARGS = -LANG:std -OPT:Olimit=0 + DYNAMICLIBRARYLIB = -ldl + OSG_LIBS = -losgGLUT -losgDB -losgUtil -losg + GLUT_LIB = -lglut + GL_LIBS = -lGLU -lGL + X_LIBS = -lXext -lXi -lXmu -lX11 + SOCKET_LIBS = + OTHER_LIBS = + SO_EXT = so + PLUGIN_EXT = so + +endif + +#### Linux specific definitions +ifeq ($(OS),Linux) +endif + + VPATH=.. diff --git a/Make/makerules.new b/Make/makerules.new index ecbe99dca..8960efbcc 100644 --- a/Make/makerules.new +++ b/Make/makerules.new @@ -70,12 +70,12 @@ $(PLUGIN:=.dbg) : @$(MAKE) LNSRC=$(DEBUGDIR)/$(PLUGIN) LNDEST=$(PLUGININST)/$(PLUGIN) __link $(EXEC:=.opt) : - @[ -d $(OPTDIR) ] || mkdir $(OPTDIR) - @cd $(OPTDIR); \ + [ -d $(OPTDIR) ] || mkdir $(OPTDIR) + cd $(OPTDIR); \ $(MAKE) -f ../Makefile DOF=$(OPTF) TOPDIR=../${TOPDIR} \ THISDIR=../$(THISDIR)\ MAKEDEPEND=../$(MAKEDEPEND) $(EXEC) - @$(MAKE) LNSRC=$(OPTDIR)/$(EXEC) LNDEST=$(BININST)/$(EXEC) __link + $(MAKE) LNSRC=$(OPTDIR)/$(EXEC) LNDEST=$(BININST)/$(EXEC) __link $(LIB:=.opt) : @@ -101,21 +101,26 @@ $(PLUGIN:=.opt) : # Handle Make dependencies in the next target # This improves performance drastically, by building Makedepend only for # files that have changed. +# +# Note that with IRIX compilers the -MDupdate $(MAKEFILE) does the same +# so there is no need to run the dependency code +# .SUFFIXES: .cpp .o .cpp.o: +ifneq ($(OS),IRIX) + $(C++) $(INC) $(DEPFLAGS) $< > .temp.dep + if [ -f $(MAKEDEPEND) ] ; \ + then \ + grep -v $< $(MAKEDEPEND) > .temp.dep1;\ + else \ + touch .temp.dep1; \ + fi + cat .temp.dep1 .temp.dep > $(MAKEDEPEND) + rm -f .temp.dep1 .temp.dep +endif $(C++) $(CXXFLAGS) -c $< -# @$(C++) $(INC) $(DEPFLAGS) $? > .temp.dep -# @if [ -f $(MAKEDEPEND) ] ; \ -# then \ -# grep -v $? $(MAKEDEPEND) > .temp.dep1;\ -# else \ -# touch .temp.dep1; \ -# fi -# @cat .temp.dep1 .temp.dep > $(MAKEDEPEND) -# @rm -f .temp.dep1 .temp.dep - depend : $(C++) $(INC) $(DEPFLAGS) $(CXXFILES) > $(MAKEDEPEND) @@ -165,7 +170,7 @@ __link : @[ -n "$(LNDEST)" ] && echo > /dev/null @if diff -s $(TOPDIR)/$(LNDEST) $(LNSRC) >/dev/null 2>&1;\ then\ - echo " =====> $(LNSRC) and $(TOPDIR)/$(LNDEST) are already in sync";\ + echo " =====> $(LNSRC) and $(TOPDIR)/$(LNDEST) are in sync";\ else\ echo " =====> resetting $(TOPDIR)/$(LNDEST) to point to $(LNSRC)";\ SRCDIR=`pwd`/`dirname $(LNSRC)`;\