diff --git a/proc/module.mk b/proc/module.mk new file mode 100644 index 00000000..15ef7e56 --- /dev/null +++ b/proc/module.mk @@ -0,0 +1,69 @@ +# Google "recursive make considered harmful" for how this works. + +SRC += $(wildcard proc/*.c) $(wildcard proc/*.c) + +------ + +# PROJECT SPECIFIC MACROS +NAME = proc + +# INSTALLATION OPTIONS +TOPDIR = /usr +HDRDIR = $(TOPDIR)/include/$(NAME)# where to put .h files +LIBDIR = $(TOPDIR)/lib# where to put library files +SHLIBDIR = /lib# where to put shared library files +HDROWN = $(OWNERGROUP) # owner of header files +LIBOWN = $(OWNERGROUP) # owner of library files +INSTALL = install + +SRC = $(sort $(wildcard *.c) $(filter %.c,$(RCSFILES))) +HDR = $(sort $(wildcard *.h) $(filter %.h,$(RCSFILES))) +OBJ = $(SRC:.c=.o) + + +SONAME = lib$(NAME).so.$(LIBVERSION) + +ifeq ($(SHARED),1) +CFLAGS += -fpic +all: lib$(NAME).a $(SONAME) +else +all: lib$(NAME).a +endif + +lib$(NAME).a: $(OBJ) + $(AR) rcs $@ $^ + +$(SONAME): $(OBJ) + gcc -shared -Wl,-soname,$(SONAME) -o $@ $^ -lc + ln -sf $(SONAME) lib$(NAME).so + + +# AUTOMATIC DEPENDENCY GENERATION -- GCC AND GNUMAKE DEPENDENT +.depend: + $(strip $(CC) $(CFLAGS) -MM -MG $(SRC) > .depend) +-include .depend + + +# INSTALLATION +install: all + if ! [ -d $(HDRDIR) ] ; then mkdir $(HDRDIR) ; fi + $(INSTALL) $(HDROWN) $(HDR) $(TOPDIR)/include/$(NAME) + $(INSTALL) $(LIBOWN) lib$(NAME).a $(LIBDIR) +ifeq ($(SHARED),1) + $(INSTALL) $(LIBOWN) $(SONAME) $(SHLIBDIR) + cd $(SHLIBDIR) && ln -sf $(SONAME) lib$(NAME).so + ldconfig +endif + + +# CUSTOM c -> o rule so that command-line has minimal whitespace +%.o : %.c + $(strip $(CC) $(CFLAGS) -c $<) + + +version.o: version.c version.h +ifdef MINORVERSION + $(strip $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" -c version.c) +else + $(strip $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -c version.c) +endif diff --git a/ps/module.mk b/ps/module.mk new file mode 100755 index 00000000..d0d16c22 --- /dev/null +++ b/ps/module.mk @@ -0,0 +1,39 @@ +INSTALL += install_ps + +----- + +all: ps + +ps: escape.o global.o help.o select.o sortformat.o output.o parser.o display.o + $(CC) -o ps escape.o global.o help.o select.o sortformat.o output.o parser.o display.o -L../proc -lproc + +# This just adds the stacktrace code +debug: escape.o global.o help.o select.o sortformat.o output.o parser.o display.o stacktrace.o + $(CC) -o ps escape.o global.o help.o select.o sortformat.o output.o parser.o display.o stacktrace.o -L../proc -lproc -lefence + +sortformat.o: sortformat.c common.h + +global.o: global.c common.h + +escape.o: escape.c + +help.o: help.c + +select.o: select.c common.h + +output.o: output.c common.h + +parser.o: parser.c common.h + +display.o: display.c common.h + +stacktrace.o: stacktrace.c + + +install: ps + install $(OWNERGROUP) --mode a=rx --strip ps $(BINDIR)/ps + install $(OWNERGROUP) --mode a=r ps.1 $(MAN1DIR)/ps.1 + -rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz + +clean: + rm -f *.o DEADJOE *~ core ps gmon.out