Some people still ask questions about makefile. Below is a Makefile I summarized, in which some information is referred to, but some forget the source, the following is the information of these information, you should be able to search, thank them.
How to write a makefile
GNU Make Guide (Goerge Foot, Translation: Ha 6)
GNU Make (Richard M. Stallman and Roland McGrath)
######################################################################################################################################################################################################################################################################################################## ##########################################
# A general makefile for program.
# Created by mount0n (mount0n@yahoo.com). 2002.10.12
#
#
# 1, you put all src info the current dir.
# Your src file name soould be .c or .cpp file.
# 2, and set Compile Options and Program name.
# 3, Make Depend
# T set src dependender limited at first time and every time your change
# Depend rellation.
# 4, Make
# EVERYTHING IS OK. You can make makefile. HEHE.
#
######################################################################################################################################################################################################################################################################################################## ##########################################
CC = GCC
CWARN = -wstrict-prototypes -wall -wunused
CDEFS = -d_debug
CINCS = -i / usr / local / include
CFLAGS = $ (CWARN) $ (CDEFS) $ (CINCS) -g -O2
CXXFLAGS = $ (cflags)
Ldflags = -pthread -l / usr / local / lib
Program =
# Donot Change Below here.
SRCS = $ (Wildcard * .cpp) $ (Wildcard * .c)
Objs = $ (PATSUBST% .c,%. O, $ (PatSubst% .cpp,%. O, $ (srcs)))
Depend = MakeDepend - $ (cflags) -
CTAGS = CTAGS
All: $ (Program)
$ (Program): $ (OBJS)
Depend: $ (srcs)
$ (Depend) $ (SRCS)
Tags: $ (srcs)
$ (CTAGS) $ (srcs)
Clean:
-RM -F $ (Program) * .o tags core shar
Reply to: mounton (thinking ◎ pain in pain) () Reputation: 100 2002-11-13 11:32:00 Score: 0
######################################################################################################################################################################################################################################################################################################## ##########################################
# A general makefile for static library.
# Created by mount0n (mount0n@yahoo.com). 2002.10.12
#
# 1, you put all src info the current dir. # Your src file name soould be .c or .cpp file.
# 2, and set compile Options and lib name.
# 3, Make Depend
# To set src dependency limited at first time and every time you change
# Dependency relation.
# 4, Make
# EVERYTHING IS OK. You can make makefile. HEHE.
#
######################################################################################################################################################################################################################################################################################################## ##########################################
CC = GCC
CWARN = -wstrict-prototypes -wall -wunused
CDEFS =
CINCS =
CFLAGS = $ (CWARN) $ (CDEFS) $ (CINCS) -g -O2
CXXFLAGS = $ (cflags)
Destlib = libxxx.a
#LDFLAGS =
# Donot Change Below here.
SRCS = $ (Wildcard * .cpp) $ (Wildcard * .c)
Objs = $ (PATSUBST% .c,%. O, $ (PatSubst% .cpp,%. O, $ (srcs)))
Depend = MakeDepend - $ (cppflags) -
Arflags = CRU
Runlib = ranlib
All: $ (destlib)
$ (DESTLIB): $ (OBJS)
$ (Ar) $ (arflags) $ @ $?
$ (Runlib) $ (destlib)
Depend: $ (srcs)
$ (Depend) $ (SRCS)
Tags: $ (srcs)
$ (CTAGS) $ (srcs)
Clean:
-RM-F $ (destlib) * .o tags core shar
######################################################################################################################################################################################################################################################################################################## ##########################################
# A generalakefile for Dynamic Library.
# Created by mount0n (mount0n@yahoo.com). 2002.10.12
#
# 1, you put all src info the current dir.
# Your src file name soould be .c or .cpp file.
# 2, and set compile Options and lib name.
# 3, Make Depend
# To set src dependency limited at first time and every time you change
# Dependency relation.
# 4, Make
# EVERYTHING IS OK. You can make makefile. HEHE.
#
######################################################################################################################################################################################################################################################################################################## ##########################################
CC = GCC
CWARN = -wstrict-prototypes -wall -wunused
CDEFS = -d_debug
CINCS = -i / usr / local / incrudecflags = $ (cwarn) $ (cincs) -g-od
CXXFLAGS = $ (cflags)
Ldflags = -pthread -l / usr / local / lib
Destlib =
# Donot Change Below here.
SRCS = $ (Wildcard * .cpp) $ (Wildcard * .c)
Objs = $ (PATSUBST% .c,%. O, $ (PatSubst% .cpp,%. O, $ (srcs)))
Depend = MakeDepend - $ (cflags) -
Cflags = -fpic
CXXFLAGS = -fpic
All: $ (Program)
$ (DESTLIB): $ (OBJS)
$ (Cc) -shared -wl, -soname, $ (destlib) $ (LDFLAGS) $ (LDLIBS) $ ^ -o $ @
Depend: $ (srcs)
$ (Depend) $ (SRCS)
Tags: $ (srcs)
$ (CTAGS) $ (srcs)
Clean:
-RM-F $ (destlib) * .o tags core shar
Existing problems:
Depend needs the MakeDepend program;
Tags requires a CTAGS program, and only the VIM support program TAG;