Hi,
I have always been afraid of makefiles and I was given a
generic
makefile to use and have been using that. Now I dont like it
much since
it doesnt cover everything I would like it to.
I am trying to make a generic makefile, in an effort to
understand the
makefile itself.
I have written a makefile to make libraries.
------------------------------------------------------------
-----------
TOPDIR= ../..
OS=LINUX
TARGET_PLATFORM=i386
CC= gcc
CPP= g++
COMPILE= $(CPP)
MKLIB= ar rvu
RM= rm -rf
INC_CFLAGS= -I/usr/include/mysql++ -I$(TOPDIR)/cncpbaseclass
-I/usr/include/mysql -I$(TOPDIR)/oammsg
-I$(TOPDIR)/neoamcomm -I../util_lib -I$(TOPDIR)/util
#-Wno-deprecated
CFLAGS= -w -g -O2 -I. -D$(OS) -D$(TARGET_PLATFORM)
-D_REENTRANT
-D__LITTLE_ENDIAN__ -D__NOT_USE_AUTH_MOD__
CFLAGS+= $(INC_CFLAGS)
#This is where you put the name of the library you are
creating
OUT_LIB= libdbaccess.a
#This is the directory where the library will be put
OUT_LIB_DIR= $(TOPDIR)/LIB-OUT
SRCS= myprog1.cpp myprog2.cpp
INCLUDES= myheader1.h ../include/myheader2.h
#OBJS= $(SRCS:%.cpp=%.o)
all: $(OUT_LIB_DIR)/$(OUT_LIB)
$(OUT_LIB_DIR)/$(OUT_LIB): $(SRCS)
$(COMPILE) $(CFLAGS) -c $?
$(MKLIB) $(OUT_LIB_DIR)/$(OUT_LIB) $(OBJS)
$(RM) $(OBJS)
clean:
$(RM) $(OUT_LIB_DIR)/$(OUT_LIB) *~* *#* *.o
------------------------------------------------------------
-----------------
This seems to work just fine for source file changes. But I
cant seem
to figure out how to add header file dependencies to it? The
reason I
didnt put the OBJ file rule in the makefile is because I
dont want the
.o files, I create an .a file out of all the .o's so I
delete the .o's.
So I skipped that step, thats y compiling and archiving are
in one
step.
Now if I add $(INCLUDES) in the OUT_LIB target then if I
change the
header file, it tries to compile it, and I can see y it does
that. I
want when the header file is changed it should remake all
the $(SRCS)
files or a subset of those that depend on it.
How can I achieve this?
Thanks
Ankur
_______________________________________________
help-gnu-utils mailing list
help-gnu-utils gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-utils
|