diff --git a/.gitignore b/.gitignore index 8a1ce60..13c1c43 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ include/mtcerrno.h scripts/generr scripts/generr.o scripts/ha_errnorc +stubs/cfread +*.o +*.a diff --git a/Makefile b/Makefile index c099041..62df803 100755 --- a/Makefile +++ b/Makefile @@ -2,63 +2,37 @@ # Top-level Makefile # # This makefile installs the debug version (compiled without NDEBUG). -# To install release version, do "make release-install" or -# modify this makefile to do release install by default. See #here below. # -.PHONY: build clean debug release +.PHONY: build clean debug -all: debug release +all: debug debug: @mkdir -p debug - @cd include; make DEFMAKE=default-debug.mk - @cd lib; make DEFMAKE=default-debug.mk - @cd daemon; make DEFMAKE=default-debug.mk - @cd commands; make DEFMAKE=default-debug.mk - @cd scripts; make DEFMAKE=default-debug.mk + $(MAKE) -C include DEFMAKE=default-debug.mk + $(MAKE) -C lib DEFMAKE=default-debug.mk + $(MAKE) -C daemon DEFMAKE=default-debug.mk + $(MAKE) -C commands DEFMAKE=default-debug.mk + $(MAKE) -C scripts DEFMAKE=default-debug.mk -release: - @mkdir -p release - @cd include; make DEFMAKE=default-release.mk - @cd lib; make DEFMAKE=default-release.mk - @cd daemon; make DEFMAKE=default-release.mk - @cd commands; make DEFMAKE=default-release.mk - @cd scripts; make DEFMAKE=default-release.mk - -clean: debug-clean release-clean +clean: debug-clean debug-clean: - @cd include; make clean DEFMAKE=default-debug.mk - @cd lib; make clean DEFMAKE=default-debug.mk - @cd daemon; make clean DEFMAKE=default-debug.mk - @cd commands; make clean DEFMAKE=default-debug.mk - @cd scripts; make clean DEFMAKE=default-debug.mk + @cd include; $(MAKE) clean DEFMAKE=default-debug.mk + @cd lib; $(MAKE) clean DEFMAKE=default-debug.mk + @cd daemon; $(MAKE) clean DEFMAKE=default-debug.mk + @cd commands; $(MAKE) clean DEFMAKE=default-debug.mk + @cd scripts; $(MAKE) clean DEFMAKE=default-debug.mk -rmdir debug -release-clean: - @cd include; make clean DEFMAKE=default-release.mk - @cd lib; make clean DEFMAKE=default-release.mk - @cd daemon; make clean DEFMAKE=default-release.mk - @cd commands; make clean DEFMAKE=default-release.mk - @cd scripts; make clean DEFMAKE=default-release.mk - -rmdir release - #here install: debug-install debug-install: @mkdir -p debug - @cd include; make install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk - @cd lib; make install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk - @cd daemon; make install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk - @cd commands; make install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk - @cd scripts; make install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk - -release-install: - @mkdir -p release - @cd include; make install DESTDIR=$(DESTDIR) DEFMAKE=default-release.mk - @cd lib; make install DESTDIR=$(DESTDIR) DEFMAKE=default-release.mk - @cd daemon; make install DESTDIR=$(DESTDIR) DEFMAKE=default-release.mk - @cd commands; make install DESTDIR=$(DESTDIR) DEFMAKE=default-release.mk - @cd scripts; make install DESTDIR=$(DESTDIR) DEFMAKE=default-release.mk + @cd include; $(MAKE) install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk + @cd lib; $(MAKE) install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk + @cd daemon; $(MAKE) install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk + @cd commands; $(MAKE) install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk + @cd scripts; $(MAKE) install DESTDIR=$(DESTDIR) DEFMAKE=default-debug.mk diff --git a/daemon/Makefile b/daemon/Makefile index 9bf3d9c..c4eec71 100755 --- a/daemon/Makefile +++ b/daemon/Makefile @@ -1,7 +1,6 @@ # # daemon/Makefile # - TARGET_DIR=daemon DEFMAKE=default-debug.mk include ../$(DEFMAKE) @@ -33,7 +32,7 @@ OBJS +=$(OBJDIR)/hostweight.o all: $(TARGET) $(LST) $(TARGET): $(OBJS) $(HALIBS) - $(CC) -o $@ $(LIBS) $(OBJS) $(HALIBS) $(LIBS) + $(CC) -o $@ $(OBJS) $(HALIBS) $(LIBS) @chmod 0755 $@ $(LST): $(TARGET) diff --git a/default-debug.mk b/default-debug.mk index 80577aa..e7bae28 100755 --- a/default-debug.mk +++ b/default-debug.mk @@ -4,24 +4,19 @@ CC=gcc SOURCEDIR=.. -CFLAGS=-g -Wall -Wno-multichar -Werror=pointer-to-int-cast - +override CFLAGS+=-g -Wall -Wno-multichar -Werror=pointer-to-int-cast -Og OBJDIR=$(SOURCEDIR)/debug INCDIR=$(SOURCEDIR)/include INCLUDES=-I$(INCDIR) -LIBS=-lxml2 -lrt +LIBS=-lxml2 -lrt $(LDFLAGS) HALIBS=$(OBJDIR)/libxha.a INSDIR=/usr/libexec/xapi/cluster-stack/xhad LOGCONFDIR=/etc/logrotate.d -.PHONY: build clean debug release +.PHONY: build clean debug %.o: %.c $(INCDIR)/*.h $(CC) $(CFLAGS) $(INCLUDES) -c $< -%.a: %.c $(INCDIR)/*.h - $(CC) $(CFLAGS) $(INCLUDES) -c $< - @$(AR) rv $@ $*.o - @$(RM) $*.o diff --git a/default-release.mk b/default-release.mk deleted file mode 100755 index 44960fe..0000000 --- a/default-release.mk +++ /dev/null @@ -1,27 +0,0 @@ -# -# default-release.mk -# - -CC=gcc -SOURCEDIR=.. -CFLAGS=-g -Wall -Wno-multichar -Werror=pointer-to-int-cast - -CFLAGS+=-DNDEBUG -OBJDIR=$(SOURCEDIR)/release - -INCDIR=$(SOURCEDIR)/include -INCLUDES=-I$(INCDIR) -LIBS=-lxml2 -lrt -HALIBS=$(OBJDIR)/libxha.a -INSDIR=/usr/libexec/xapi/cluster-stack/xhad -LOGCONFDIR=/etc/logrotate.d - -.PHONY: build clean debug release - -%.o: %.c $(INCDIR)/*.h - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -%.a: %.c $(INCDIR)/*.h - $(CC) $(CFLAGS) $(INCLUDES) -c $< - @$(AR) rv $@ $*.o - @$(RM) $*.o diff --git a/include/Makefile b/include/Makefile index 2e526bc..25ae6ec 100755 --- a/include/Makefile +++ b/include/Makefile @@ -14,7 +14,6 @@ all: $(TARGET) mtcerrno.h: errdef.awk mtcerrno.def gawk -f errdef.awk mtcerrno.def > $@ -.PHONY: buildid.h buildid.h: sh buildid.sh > $@ diff --git a/lib/Makefile b/lib/Makefile index afed6a2..2ea8647 100755 --- a/lib/Makefile +++ b/lib/Makefile @@ -13,11 +13,14 @@ OBJS +=config.o OBJS +=error.o OBJS +=weightio.o -TARGET=$(HALIBS)($(OBJS)) +TARGET=$(HALIBS) + +$(HALIBS): $(OBJS) + @$(AR) rv $@ $(OBJS) all: $(TARGET) install: $(TARGET) clean: - rm -f $(HALIBS) + rm -f $(HALIBS) $(OBJS) diff --git a/readme b/readme index 5c7bc02..7d129e4 100644 --- a/readme +++ b/readme @@ -41,8 +41,6 @@ Date: April 18, 2008 Top-level makefile of xha. default-debug.mk Various make defaults for debug build. - default-release.mk - Various make defaults for release build. commands/ Source files of utility programs for the HA scripts. daemon/ diff --git a/stubs/Makefile b/stubs/Makefile index bc50cfa..8703210 100755 --- a/stubs/Makefile +++ b/stubs/Makefile @@ -16,12 +16,12 @@ TARGET= $(SCRIPTDIR)/cfread \ $(FRC) all: - (cd cfread-libxml2; make) + $(MAKE) -C cfread-libxml2 install: -mkdir -p $(DESTDIR)$(SCRIPTDIR) -cp ha_* cfread $(DESTDIR)$(SCRIPTDIR) clean: - (cd cfread-libxml2; make clean) + $(MAKE) -C cfread-libxml2 clean -rm -f $(TARGET)