| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- PRODUCTNAME = ou
- MODE ?= DEVELOP
- BITS ?= 32
- include makefile.os
- CXX = gcc
- AR = ar
- LD = gcc
- CXXFLAGS = -fno-exceptions -fno-rtti -Wall -g
- ARFLAGS = -r
- LDFLAGS = -fno-exceptions -fno-rtti -g
- ifeq ($(OS_PLATFORM), i386)
- ifneq ($(BITS), 64)
- CXXFLAGS += -malign-double
- endif
- endif
- ifeq ($(MODE), DEBUG)
- CXXFLAGS += -D_DEBUG
- CXXFLAGS += -O0
- else
- ifeq ($(MODE), RELEASE)
- CXXFLAGS += -DNDEBUG
- CXXFLAGS += -O3 -funroll-loops
- else
- CXXFLAGS += -O2
- endif
- endif
- ifeq ($(BITS), 64)
- CXXFLAGS += -m64
- LDFLAGS += -m64
-
- else
- CXXFLAGS += -m32
- LDFLAGS += -m32
- endif
- SRCEXT=.cpp
- OBJEXT=$(OS_OBJ_EXT)
- OUTNAME := $(PRODUCTNAME)
- OUTDIR = ../../lib/
- OUTEXT=$(OS_LIB_EXT)
- TESTNAME := $(PRODUCTNAME)test
- TESTDIR = ../../bin/
- TESTEXT=$(OS_EXE_EXT)
- REFINEDCXX = $(notdir $(CXX))
- OUTINTDIR := ../../intermediate/$(REFINEDCXX)/
- TESTINTDIR := ../../intermediate/$(REFINEDCXX)_$(TESTNAME)/
- ifeq ($(MODE), DEBUG)
- OUTINTDIR := $(OUTINTDIR)debug
- TESTINTDIR := $(TESTINTDIR)debug
- else
- ifeq ($(MODE), RELEASE)
- OUTINTDIR := $(OUTINTDIR)release
- TESTINTDIR := $(TESTINTDIR)release
- else
- OUTINTDIR := $(OUTINTDIR)develop
- TESTINTDIR := $(TESTINTDIR)develop
- endif
- endif
- ifeq ($(BITS), 64)
- OUTINTDIR := $(OUTINTDIR)64
- TESTINTDIR := $(TESTINTDIR)64
- OUTNAME := $(OUTNAME)64
- TESTNAME := $(TESTNAME)64
- endif
- ifeq ($(MODE), DEBUG)
- OUTNAME := $(OUTNAME)_debug
- TESTNAME := $(TESTNAME)_debug
- endif
- ifeq ($(MODE), RELEASE)
- OUTNAME := $(OUTNAME)_release
- TESTNAME := $(TESTNAME)_release
- endif
- OUTINTDIR := $(OUTINTDIR)/
- TESTINTDIR := $(TESTINTDIR)/
- OUTPATH = $(OUTDIR)$(OS_LIB_PRE)$(OUTNAME)$(OUTEXT)
- TESTPATH = $(TESTDIR)$(TESTNAME)$(TESTEXT)
- ININCDIR = ../../include
- INDIR = ../../src/ou/
- INFILES = \
- atomic \
- customization \
- malloc \
- threadlocalstorage
- INOBJS = $(addprefix $(OUTINTDIR), $(addsuffix $(OBJEXT), $(INFILES)))
- TESTINCDIR = $(ININCDIR)
- TESTLIBDIR = $(OUTDIR)
- TESTLIBS = $(OUTNAME)
- TESTSRCDIR = ../../test/
- ifeq ($(OS_TYPE), Linux)
- TESTLIBS += pthread
- endif
- ifeq ($(OS_TYPE), SUN)
- TESTLIBS += pthread c
- endif
- TESTFILES = outest
- TESTOBJS = $(addprefix $(TESTINTDIR), $(addsuffix $(OBJEXT), $(TESTFILES)))
- .PHONY: develop debug release develop64 debug64 release64 all ou
- all: develop
- develop:
- $(MAKE) ou MODE=DEVELOP BITS=32
- debug:
- $(MAKE) ou MODE=DEBUG BITS=32
-
- release:
- $(MAKE) ou MODE=RELEASE BITS=32
-
- develop64:
- $(MAKE) ou MODE=DEVELOP BITS=64
- debug64:
- $(MAKE) ou MODE=DEBUG BITS=64
-
- release64:
- $(MAKE) ou MODE=RELEASE BITS=64
-
- ou: $(OUTPATH) $(TESTPATH)
- .PHONY: mkoutintpath mkoutpath mktestintpath mktestpath
- $(OUTPATH): mkoutintpath mkoutpath $(INOBJS)
- $(OS_VP)echo BUILDING $(notdir $(OUTPATH))...
- $(OS_VP)$(AR) $(ARFLAGS) $(OUTPATH) $(INOBJS)
- $(TESTPATH): mktestintpath mktestpath $(OUTPATH) $(TESTOBJS)
- $(OS_VP)echo LINKING $(notdir $(TESTPATH))...
- $(OS_VP)$(LD) $(LDFLAGS) $(LDADDFLAGS) -o $(TESTPATH) \
- $(addprefix -I, $(TESTINCDIR) $(OS_INCLUDE_PATH)) \
- $(addprefix -L, $(TESTLIBDIR) $(OS_LIB_PATH)) \
- $(TESTOBJS) \
- $(addprefix -l, $(TESTLIBS))
- $(OUTINTDIR)%$(OBJEXT): $(INDIR)%$(SRCEXT)
- $(OS_VP)echo Compiling $(notdir $@)...
- $(OS_VP)$(CXX) $(CXXFLAGS) $(CXXADDFLAGS) -c -o $@ \
- $(addprefix -I, $(ININCDIR) $(OS_INCLUDE_PATH)) \
- $<
- $(TESTINTDIR)%$(OBJEXT): $(TESTSRCDIR)%$(SRCEXT)
- $(OS_VP)echo Compiling $(notdir $@)...
- $(OS_VP)$(CXX) $(CXXFLAGS) $(CXXADDFLAGS) -c -o $@ \
- $(addprefix -I, $(TESTINCDIR) $(OS_INCLUDE_PATH)) \
- $<
- mkoutintpath:
- $(call FN_MKDIR, $(OUTINTDIR))
- mktestintpath:
- $(call FN_MKDIR, $(TESTINTDIR))
- mkoutpath:
- $(call FN_MKDIR, $(OUTDIR))
- mktestpath:
- $(call FN_MKDIR, $(TESTDIR))
- .PHONY: runtest
- runtest: $(TESTPATH)
- $(TESTPATH)
|