# generic utility modules # (c) 2001 jannet it services # contact@jannet.de # $Id$ GENERATE_FUNC_TIMERS = $(MODDIR)/YStopWatchThreadList/generate_func_timers.sh all: $(LOCAL_TARGETS) $(ALL) echo_all: @echo "$(ALL)" all.done: $(PREREQ_DONE) all touch $@ %.done: make -C $(shell dirname $@) `basename $@` $(LIBDIR): mkdir -p $@ #lib$(MOD)(%.o).a: %.c $(LIBDIR) # $(CC) $(CFLAGS) -c $< -o $*.o # $(AR) r $@ $*.o # $(RM) $*.o moc_%.cpp: %.h $(MOC) -o $@ $< #ifeq ($(LIBTYPE),shared) #lib%.so: %.o $(LIB_SO) #else #lib%.so: %.o #endif # $(CC) $< $(LDFLAGS) -o $@ lib%.so: %.o $(CC) $< $(LDFLAGS) -o $@ $(LIB_SO): $(LIB_A) $(CC) -shared -Wl,--whole-archive $< -Wl,--no-whole-archive $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@ $(TOPDIR)/include: mkdir -p $@ $(TOPDIR)/include/%.h: $(TOPDIR)/include %.h cp $(@F) $@ %.o: %.cpp $(CPP) $(CPPFLAGS) -c $< %.o: %.c $(CC) $(CFLAGS) -c $< timers_%.h: %.h $(GENERATE_FUNC_TIMERS) sh $(GENERATE_FUNC_TIMERS) $< $@ ifeq ($(USE_PROJECT_LIB),true) ifeq ($(LIBTYPE),shared) $(EXE): $(OBJ) $(LIB_SO) else $(EXE): $(OBJ) $(LIB_A) endif else $(EXE): $(OBJ) endif $(CC) $(OBJ) $(LDFLAGS) -o $@ $(LIBS): make -C $(LIBDIR) all $(INSTALL_HDRDIR) $(INSTALL_BINDIR) $(INSTALL_LIBDIR): mkdir -p $@ $(INSTALLED_LIB_SO) $(INSTALLED_LIB_A): $(INSTALL_LIBDIR) $(INSTALLED_LINKS_SO) $(LINKS_SO): cd $(dir $@); ln -sf $(notdir $(shell echo $@ | sed -e 's/\.so$$\|\.so.*$$//').$(SO_SUFFIX)) $(notdir $@) #$(INSTALL_BINDIR)/%.bin: %.bin # $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@ ifneq ($(EXE),) $(INSTALLED_EXE): $(EXE) $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@ endif $(INSTALL_BINDIR)/%.sh: %.sh install -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@ $(INSTALL_LIBDIR)/%.so: %.so install -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@ $(INSTALL_LIBDIR)/%.$(SO_SUFFIX): %.$(SO_SUFFIX) install -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@ $(INSTALL_HDRDIR)/%.h: %.h install -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@ $(INSTALL_DOCDIR_DIST)/% $(INSTALL_DOCDIR_DEVEL)/%: % mkdir -p $(dir $@) install -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@ checkroot: @if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \ echo "Error: You can only do this if either" ;\ echo " a) you are user \"root\"" ;\ echo " b) the Makefile variable CHECK_ROOT does not contain \"true\" as value." ;\ fi installexe: all checkroot $(INSTALLED_EXE) installso: all checkroot $(INSTALL_LIBDIR) $(INSTALLED_SHOBJS) installsh: all checkroot $(INSTALL_BINDIR) $(INSTALLED_EXE_SH) pckgclean: rm -rf *.zip *.tar.gz *.rpm *.deb tmpclean: rm -rf *.tmp *.rep objclean: rm -rf core .*.o *.o *.a *.so *.so.* $(MOC_CPP) textclean: doneclean rm -rf $(TEXTCLEAN) \#*\# .kdbgrc.* .\#* allclean: rm -rf $(ALL) $(LOCAL_TARGETS) doneclean: rm -rf *.done $(PREREQ_DONE) execlean: allclean objclean textclean distclean: clean objclean textclean tmpclean vcdistclean profclean timerclean localclean: $(LOCAL_CLEAN) rm -rf $(CLEAN) libclean: rm -rf $(LIB_A) $(LIB_SO) vcdistclean: rm -rf *.plg *.opt *.ncb Debug *.exe dist *.ilk prereqclean: for dir in $(PREREQ_DIR); do make -C $$dir clean; done profclean: rm -f *.da *.bb *.bbg *.gcov timerclean: rm -f timers_*.h install_libdir: $(INSTALL_LIBDIR) install_bindir: $(INSTALL_BINDIR) install_hdrdir: $(INSTALL_HDRDIR)