Hello,

    I need to write a set of rules etc to make a library that can be
used project

wide.  First let me give a specific instance of  how I make library;
then I need

some help on showing me how to generalize this

 

 

The following lines are specified to build a library.  I want my team
members to

specify this in their makefiles, one set for each makefile.

 

A_MAJ     := 0

A_MIN     := 0

A_REV     := 1

A_LIB     := libclos_trace.so

A_LIB_SRCS:=\

                clos_trace.c 

 

 

Now, for each library I want the following lines to be some how (???))
auto generated/inserted/

function called/macroe ... whatever that will make it hide from the user

 

 

A_LIB_OBJS:= $(A_LIB_SRCS:%.c=$(ARCH)/%.o)

 

$(A_LIB): $(ARCH)/$(A_LIB).$(A_MAJ).$(A_MIN).$(A_REV)

$(ARCH)/$(A_LIB).$(A_MAJ).$(A_MIN).$(A_REV): $(A_LIB_OBJS)

                mkdir -p $(ARCH); ld -shared -soname $(A_LIB).$(A_MAJ)
-o $@ $?

 

 

Now, if we can hide the following it will be nice, however, we are OK to
add this

 

make_libs: $(A_LIB) $(B_LIB) $(C_LIB)

 

 

So, I tried 

 

define clos_mk_lib

clos_lib:= $(1)

                clos_src:= $(2)

                clos_maj = $(3)

                clos_min = $(4)

                clos_rev = $(5)

 

 

 

                _OBJS:= $(clos_src:%.c=$(ARCH)/%.o)

 

$(clos_lib): $(ARCH)/$(clos_lib).$(clos_maj).$(clos_min).$(clos_rev)

 

$(ARCH)/$(clos_lib).$(clos_maj).$(clos_min).$(clos_rev): $(_OBJS)

                @echo $(clos_lib) $(clos_src);

                mkdir -p $(ARCH); ld -shared -soname
$(clos_lib).$(clos_major) -o $@ $?

 

endef

 

make_libs:

                $(call
clos_mk_lib,libclos_trace.so,$(LIB_CLOS_TRACE_SRCS),$(MAJOR),$(MINOR),$(
REV))

 

 

 

 

 

 

 

_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to