defs-orig.mk, rules.mk: Started support for shared libraries

This commit is contained in:
Jan Lindemann 2002-05-23 09:58:44 +00:00 committed by Jan Lindemann
commit 8d7243b516
2 changed files with 21 additions and 8 deletions

View file

@ -85,16 +85,18 @@ ALL_CSRC = $(LOCAL_CSRC) $(PREREQ_CSRC)
TEXTCLEAN = $(wildcard *~ .*~ .*.swp *.rep)
INCLUDE = -I. -I$(TOPDIR)/include -I$(MODDIR)/include $(PROJECT_INCLUDE) $(LOCAL_INCLUDE)
INSTALL_LIBDIR = $(PREFIX)/lib
LIB = $(LIBDIR)/lib$(LIBNAME).a
MEMBERS = $(LIB)($(OBJ))
LIB_SO = $(LIBDIR)/lib$(LIBNAME).so
LIB_A = $(LIBDIR)/lib$(LIBNAME).a
MEMBERS = $(LIB_A)($(OBJ))
#PREFIX = ../# CAUTION: This breaks the installation in the project
#MEMWATCH = -DMEMWATCH -DMW_STDIO
#YAMD = yamd-
#EFENCE = -lefence
#CFLAGS = -DNDEBUG -O2 -g $(INCLUDE) $(LOCAL_CFLAGS) #production
#CFLAGS += -DNDEBUG -O2 -g $(INCLUDE) $(LOCAL_CFLAGS) #production
CFLAGS_DEBUG = -Wall -D_DEBUG_ -g3 $(MEMWATCH)
CFLAGS = $(INCLUDE) $(PROJECT_CFLAGS) $(CFLAGS_DEBUG) $(LOCAL_CFLAGS) $(YLIB_CFLAGS)
CPPFLAGS = $(INCLUDE) $(PROJECT_CPPFLAGS) $(CPPFLAGS_DEBUG) $(LOCAL_CPPFLAGS) $(YLIB_CPPFLAGS)
CFLAGS += $(INCLUDE) $(PROJECT_CFLAGS) $(CFLAGS_DEBUG) $(LOCAL_CFLAGS) $(YLIB_CFLAGS)
CPPFLAGS += $(INCLUDE) $(PROJECT_CPPFLAGS) $(CPPFLAGS_DEBUG) $(LOCAL_CPPFLAGS) $(YLIB_CPPFLAGS)
LDFFTW = -lrfftw -lfftw -lm
#LDAUDIO = -laudiofile

View file

@ -27,9 +27,16 @@ $(LIBDIR):
moc_%.cpp: %.h
$(MOC) -o $@ $<
lib%.so: %.o # $(LIB)
ifeq ($(LIBTYPE),shared)
lib%.so: %.o $(LIB_SO)
else
lib%.so: %.o
endif
$(CC) $< $(LDFLAGS) -o $@
$(LIB_SO): $(LIB_A)
$(CC) $< $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@
$(TOPDIR)/include:
mkdir -p $@
@ -46,7 +53,11 @@ timers_%.h: %.h $(GENERATE_FUNC_TIMERS)
sh $(GENERATE_FUNC_TIMERS) $< $@
ifeq ($(USE_PROJECT_LIB),true)
$(EXE): $(OBJ) $(LIB)
ifeq ($(LIBTYPE),shared)
$(EXE): $(OBJ) $(LIB_SO)
else
$(EXE): $(OBJ) $(LIB_A)
endif
else
$(EXE): $(OBJ)
endif
@ -101,7 +112,7 @@ localclean: $(LOCAL_CLEAN)
rm -rf $(CLEAN)
libclean:
rm -rf $(LIB)
rm -rf $(LIB_A) $(LIB_SO)
vcdistclean:
rm -rf *.plg *.opt *.ncb Debug *.exe dist *.ilk