Consolidates user library Makefiles
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 18 Jun 2015 15:46:31 +0000 (11:46 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 18 Jun 2015 16:08:34 +0000 (12:08 -0400)
Most user libraries do the same thing; there's no need to replicate the
makefile contents, and it's a pain.

One slight change is that the libraries other than parlib didn't have
the DEPLIBAS on the ARCH/%.o target, which was probably a bug.

user/Makefrag-user-lib [new file with mode: 0644]
user/benchutil/Makefile
user/iplib/Makefile
user/ndblib/Makefile
user/parlib/Makefile

diff --git a/user/Makefrag-user-lib b/user/Makefrag-user-lib
new file mode 100644 (file)
index 0000000..25569f9
--- /dev/null
@@ -0,0 +1,59 @@
+# Makefrag for most user libraries
+# They must set LIBNAME, then include this fragment
+# e.g.  LIBNAME = parlib
+
+ARCH ?= none   # catch bugs
+CFLAGS_USER += $(CFLAGS_USER_LIBS)
+# DEPLIBS passed in from the top-level Makefile
+DEPLIBS := $(DEPLIBS)
+DEPLIBAS = $(patsubst %, $(XCC_TARGET_LIB)/lib%.a, $(DEPLIBS))
+
+SRCDIR :=
+OBJDIR := $(SRCDIR)obj
+INCDIR = $(SRCDIR)include
+
+INCS = -I. -I$(INCDIR)
+FINALLIB = $(OBJDIR)/lib$(LIBNAME).a
+FINALLIB-INSTALL = $(XCC_TARGET_LIB)/lib$(LIBNAME).a
+
+uc = $(shell echo $(1) | tr a-z A-Z)
+
+LIBUCNAME := $(call uc, $(LIBNAME))
+HEADERS := $(shell find $(INCDIR) -name "*.h")
+CFILES  := $(wildcard $(SRCDIR)*.c)
+CFILES  += $(wildcard $(SRCDIR)$(ARCH)/*.c)
+SFILES  := $(wildcard $(SRCDIR)$(ARCH)/*.S)
+OBJS    := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
+           $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
+
+all: $(FINALLIB)
+       @:
+
+$(OBJDIR)/$(ARCH)/%.o: $(SRCDIR)$(ARCH)/%.S $(HEADERS) $(DEPLIBAS)
+       @echo + as [$(LIBUCNAME)] $<
+       @mkdir -p $(@D)
+       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
+
+$(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS) $(DEPLIBAS)
+       @echo + cc [$(LIBUCNAME)] $<
+       @mkdir -p $(@D)
+       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
+
+$(FINALLIB): $(OBJS)
+       @echo + ar [$(LIBUCNAME)] $@
+       @mkdir -p $(@D)
+       $(Q)$(AR) rc $@ $(OBJS)
+
+$(FINALLIB-INSTALL): $(FINALLIB)
+       @cp $(FINALLIB) $@
+       @cp -R $(INCDIR)/* $(XCC_TARGET_INCLUDE)/
+       @rm -rf $(XCC_TARGET_INCLUDE)/$(LIBNAME)
+       @ln -fs . $(XCC_TARGET_INCLUDE)/$(LIBNAME)
+
+install: $(FINALLIB-INSTALL)
+       @echo > /dev/null
+
+clean:
+       @echo + clean [$(LIBUCNAME)]
+       $(Q)rm -rf $(FINALLIB)
+       $(Q)rm -rf $(OBJDIR)
index 18f8d03..d1dd83b 100644 (file)
@@ -1,57 +1,2 @@
-ARCH ?= none   # catch bugs
-CFLAGS_USER += $(CFLAGS_USER_LIBS)
 LIBNAME = benchutil
-# DEPLIBS passed in from the top-level Makefile
-DEPLIBS := $(DEPLIBS)
-DEPLIBAS = $(patsubst %, $(XCC_TARGET_LIB)/lib%.a, $(DEPLIBS))
-
-SRCDIR := 
-OBJDIR := $(SRCDIR)obj
-INCDIR = $(SRCDIR)include
-
-INCS = -I. -I$(INCDIR) 
-FINALLIB = $(OBJDIR)/lib$(LIBNAME).a
-FINALLIB-INSTALL = $(XCC_TARGET_LIB)/lib$(LIBNAME).a
-
-uc = $(shell echo $(1) | tr a-z A-Z)
-
-LIBUCNAME := $(call uc, $(LIBNAME))
-HEADERS := $(shell find $(INCDIR) -name "*.h")
-CFILES  := $(wildcard $(SRCDIR)*.c)
-CFILES  += $(wildcard $(SRCDIR)$(ARCH)/*.c)
-SFILES  := $(wildcard $(SRCDIR)$(ARCH)/*.S)
-OBJS    := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
-           $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
-
-all: $(FINALLIB)
-       @:
-
-$(OBJDIR)/$(ARCH)/%.o: $(SRCDIR)$(ARCH)/%.S $(HEADERS)
-       @echo + as [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS) $(DEPLIBAS)
-       @echo + cc [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(FINALLIB): $(OBJS)
-       @echo + ar [$(LIBUCNAME)] $@
-       @mkdir -p $(@D)
-       $(Q)$(AR) rc $@ $(OBJS)
-
-$(FINALLIB-INSTALL): $(FINALLIB)
-       @cp $(FINALLIB) $@
-       @cp -R $(INCDIR)/* $(XCC_TARGET_INCLUDE)/
-       @rm -rf $(XCC_TARGET_INCLUDE)/benchutil
-       @ln -fs . $(XCC_TARGET_INCLUDE)/benchutil
-
-install: $(FINALLIB-INSTALL)
-       @echo > /dev/null
-
-clean: 
-       @echo + clean [$(LIBUCNAME)]
-       $(Q)rm -rf $(FINALLIB)
-       $(Q)rm -rf $(OBJDIR)
-       
+include ../Makefrag-user-lib
index 607aadd..1964d0f 100644 (file)
@@ -1,57 +1,2 @@
-ARCH ?= none   # catch bugs
-CFLAGS_USER += $(CFLAGS_USER_LIBS)
 LIBNAME = iplib
-# DEPLIBS passed in from the top-level Makefile
-DEPLIBS := $(DEPLIBS)
-DEPLIBAS = $(patsubst %, $(XCC_TARGET_LIB)/lib%.a, $(DEPLIBS))
-
-SRCDIR := 
-OBJDIR := $(SRCDIR)obj
-INCDIR = $(SRCDIR)include
-
-INCS = -I. -I$(INCDIR)
-FINALLIB = $(OBJDIR)/lib$(LIBNAME).a
-FINALLIB-INSTALL = $(XCC_TARGET_LIB)/lib$(LIBNAME).a
-
-uc = $(shell echo $(1) | tr a-z A-Z)
-
-LIBUCNAME := $(call uc, $(LIBNAME))
-HEADERS := $(shell find $(INCDIR) -name "*.h")
-CFILES  := $(wildcard $(SRCDIR)*.c)
-CFILES  += $(wildcard $(SRCDIR)$(ARCH)/*.c)
-SFILES  := $(wildcard $(SRCDIR)$(ARCH)/*.S)
-OBJS    := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
-           $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
-
-all: $(FINALLIB)
-       @:
-
-$(OBJDIR)/$(ARCH)/%.o: $(SRCDIR)$(ARCH)/%.S $(HEADERS)
-       @echo + as [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS) $(DEPLIBAS)
-       @echo + cc [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(FINALLIB): $(OBJS)
-       @echo + ar [$(LIBUCNAME)] $@
-       @mkdir -p $(@D)
-       $(Q)$(AR) rc $@ $(OBJS)
-
-$(FINALLIB-INSTALL): $(FINALLIB)
-       @cp $(FINALLIB) $@
-       @cp -R $(INCDIR)/* $(XCC_TARGET_INCLUDE)/
-       @rm -rf $(XCC_TARGET_INCLUDE)/iplib
-       @ln -fs . $(XCC_TARGET_INCLUDE)/iplib
-
-install: $(FINALLIB-INSTALL)
-       @echo > /dev/null
-
-clean: 
-       @echo + clean [$(LIBUCNAME)]
-       $(Q)rm -rf $(FINALLIB)
-       $(Q)rm -rf $(OBJDIR)
-
+include ../Makefrag-user-lib
index 078bbef..2e1a0b5 100644 (file)
@@ -1,57 +1,2 @@
-ARCH ?= none   # catch bugs
-CFLAGS_USER += $(CFLAGS_USER_LIBS)
 LIBNAME = ndblib
-# DEPLIBS passed in from the top-level Makefile
-DEPLIBS := $(DEPLIBS)
-DEPLIBAS = $(patsubst %, $(XCC_TARGET_LIB)/lib%.a, $(DEPLIBS))
-
-SRCDIR := 
-OBJDIR := $(SRCDIR)obj
-INCDIR = $(SRCDIR)include
-
-INCS = -I. -I$(INCDIR)
-FINALLIB = $(OBJDIR)/lib$(LIBNAME).a
-FINALLIB-INSTALL = $(XCC_TARGET_LIB)/lib$(LIBNAME).a
-
-uc = $(shell echo $(1) | tr a-z A-Z)
-
-LIBUCNAME := $(call uc, $(LIBNAME))
-HEADERS := $(shell find $(INCDIR) -name "*.h")
-CFILES  := $(wildcard $(SRCDIR)*.c)
-CFILES  += $(wildcard $(SRCDIR)$(ARCH)/*.c)
-SFILES  := $(wildcard $(SRCDIR)$(ARCH)/*.S)
-OBJS    := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
-           $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
-
-all: $(FINALLIB)
-       @:
-
-$(OBJDIR)/$(ARCH)/%.o: $(SRCDIR)$(ARCH)/%.S $(HEADERS)
-       @echo + as [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS) $(DEPLIBAS)
-       @echo + cc [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(FINALLIB): $(OBJS)
-       @echo + ar [$(LIBUCNAME)] $@
-       @mkdir -p $(@D)
-       $(Q)$(AR) rc $@ $(OBJS)
-
-$(FINALLIB-INSTALL): $(FINALLIB)
-       @cp $(FINALLIB) $@
-       @cp -R $(INCDIR)/* $(XCC_TARGET_INCLUDE)/
-       @rm -rf $(XCC_TARGET_INCLUDE)/libip
-       @ln -fs . $(XCC_TARGET_INCLUDE)/libip
-
-install: $(FINALLIB-INSTALL)
-       @echo > /dev/null
-
-clean: 
-       @echo + clean [$(LIBUCNAME)]
-       $(Q)rm -rf $(FINALLIB)
-       $(Q)rm -rf $(OBJDIR)
-
+include ../Makefrag-user-lib
index 399c222..34d9c2c 100644 (file)
@@ -1,57 +1,2 @@
-ARCH ?= none   # catch bugs
-CFLAGS_USER += $(CFLAGS_USER_LIBS)
 LIBNAME = parlib
-# DEPLIBS passed in from the top-level Makefile
-DEPLIBS := $(DEPLIBS)
-DEPLIBAS = $(patsubst %, $(XCC_TARGET_LIB)/lib%.a, $(DEPLIBS))
-
-SRCDIR := 
-OBJDIR := $(SRCDIR)obj
-INCDIR = $(SRCDIR)include
-
-INCS = -I. -I$(INCDIR) 
-FINALLIB = $(OBJDIR)/lib$(LIBNAME).a
-FINALLIB-INSTALL = $(XCC_TARGET_LIB)/lib$(LIBNAME).a
-
-uc = $(shell echo $(1) | tr a-z A-Z)
-
-LIBUCNAME := $(call uc, $(LIBNAME))
-HEADERS := $(shell find $(INCDIR) -name "*.h")
-CFILES  := $(wildcard $(SRCDIR)*.c)
-CFILES  += $(wildcard $(SRCDIR)$(ARCH)/*.c)
-SFILES  := $(wildcard $(SRCDIR)$(ARCH)/*.S)
-OBJS    := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
-           $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
-
-all: $(FINALLIB)
-       @:
-
-$(OBJDIR)/$(ARCH)/%.o: $(SRCDIR)$(ARCH)/%.S $(HEADERS) $(DEPLIBAS)
-       @echo + as [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS) $(DEPLIBAS)
-       @echo + cc [$(LIBUCNAME)] $<
-       @mkdir -p $(@D)
-       $(Q)$(CC) $(CFLAGS_USER) $(INCS) -o $@ -c $<
-
-$(FINALLIB): $(OBJS)
-       @echo + ar [$(LIBUCNAME)] $@
-       @mkdir -p $(@D)
-       $(Q)$(AR) rc $@ $(OBJS)
-
-$(FINALLIB-INSTALL): $(FINALLIB)
-       @cp $(FINALLIB) $@
-       @cp -R $(INCDIR)/* $(XCC_TARGET_INCLUDE)/
-       @rm -rf $(XCC_TARGET_INCLUDE)/parlib
-       @ln -fs . $(XCC_TARGET_INCLUDE)/parlib
-
-install: $(FINALLIB-INSTALL)
-       @echo > /dev/null
-
-clean: 
-       @echo + clean [$(LIBUCNAME)]
-       $(Q)rm -rf $(FINALLIB)
-       $(Q)rm -rf $(OBJDIR)
-       
+include ../Makefrag-user-lib