diff options
author | Josh Coalson <jcoalson@users.sourceforce.net> | 2008-09-14 19:59:52 +0000 |
---|---|---|
committer | Josh Coalson <jcoalson@users.sourceforce.net> | 2008-09-14 19:59:52 +0000 |
commit | c10f978fa6ff60c859a46989cd0012b01f9e9626 (patch) | |
tree | ac1eb7b7fe2e2cc6b15493bd5c0d8e8fbb31d19b /build | |
parent | 02da5ace60e640a90dabff9a4cb024a3d87375f4 (diff) | |
download | flac-c10f978fa6ff60c859a46989cd0012b01f9e9626.tar.gz |
update Makefile.lite system to work on x86_64 linux
Diffstat (limited to 'build')
-rw-r--r-- | build/Makefile.am | 1 | ||||
-rw-r--r-- | build/compile.mk | 63 | ||||
-rw-r--r-- | build/config.mk | 9 | ||||
-rw-r--r-- | build/exe.mk | 38 | ||||
-rw-r--r-- | build/lib.mk | 52 |
5 files changed, 104 insertions, 59 deletions
diff --git a/build/Makefile.am b/build/Makefile.am index dba93bc7..8c5b4c78 100644 --- a/build/Makefile.am +++ b/build/Makefile.am @@ -16,6 +16,7 @@ # distribution. EXTRA_DIST = \ + compile.mk \ config.mk \ exe.mk \ lib.mk diff --git a/build/compile.mk b/build/compile.mk new file mode 100644 index 00000000..d38f719a --- /dev/null +++ b/build/compile.mk @@ -0,0 +1,63 @@ +# FLAC - Free Lossless Audio Codec +# Copyright (C) 2001,2002,2003,2004,2005,2006,2007,2008 Josh Coalson +# +# This file is part the FLAC project. FLAC is comprised of several +# components distributed under difference licenses. The codec libraries +# are distributed under Xiph.Org's BSD-like license (see the file +# COPYING.Xiph in this distribution). All other programs, libraries, and +# plugins are distributed under the GPL (see COPYING.GPL). The documentation +# is distributed under the Gnu FDL (see COPYING.FDL). Each file in the +# FLAC distribution contains at the top the terms under which it may be +# distributed. +# +# Since this particular file is relevant to all components of FLAC, +# it may be distributed under the Xiph.Org license, which is the least +# restrictive of those mentioned above. See the file COPYING.Xiph in this +# distribution. + +# +# GNU makefile fragment for building a library +# + +%.debug.o %.release.o : %.c + $(CC) $(CFLAGS) -c $< -o $@ +%.debug.o %.release.o : %.cc + $(CCC) $(CFLAGS) -c $< -o $@ +%.debug.o %.release.o : %.cpp + $(CCC) $(CFLAGS) -c $< -o $@ +%.debug.pic.o %.release.pic.o : %.c + $(CC) $(CFLAGS) -fPIC -DPIC -c $< -o $@ +%.debug.pic.o %.release.pic.o : %.cc + $(CCC) $(CFLAGS) -fPIC -DPIC -c $< -o $@ +%.debug.pic.o %.release.pic.o : %.cpp + $(CCC) $(CFLAGS) -fPIC -DPIC -c $< -o $@ +%.debug.i %.release.i : %.c + $(CC) $(CFLAGS) -E $< -o $@ +%.debug.i %.release.i : %.cc + $(CCC) $(CFLAGS) -E $< -o $@ +%.debug.i %.release.i : %.cpp + $(CCC) $(CFLAGS) -E $< -o $@ + +%.debug.o %.release.o : %.s +ifeq ($(OS),Darwin) + #$(CC) -c -arch ppc -Wall -force_cpusubtype_ALL $< -o $@ + $(AS) -arch ppc -force_cpusubtype_ALL $< -o $@ +else + $(AS) $< -o $@ +endif +%.debug.pic.o %.release.pic.o : %.s +ifeq ($(OS),Darwin) + #$(CC) -c -arch ppc -Wall -force_cpusubtype_ALL $< -o $@ + $(AS) -arch ppc -force_cpusubtype_ALL $< -o $@ +else + $(AS) $< -o $@ +endif + +%.debug.o : %.nasm + $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ -g $< -o $@ +%.release.o : %.nasm + $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ $< -o $@ +%.debug.pic.o : %.nasm + $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ -g $< -o $@ +%.release.pic.o : %.nasm + $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ $< -o $@ diff --git a/build/config.mk b/build/config.mk index 67b7eca1..5ff536bc 100644 --- a/build/config.mk +++ b/build/config.mk @@ -21,12 +21,17 @@ DEFAULT_BUILD = release +# returns i386, x86_64, powerpc, etc. +PROC := $(shell uname -p) +# returns Linux, Darwin, FreeBSD, etc. +OS := $(shell uname -s) + debug : BUILD = debug valgrind : BUILD = debug release : BUILD = release # override LINKAGE on OS X until we figure out how to get 'cc -static' to work -ifeq ($(DARWIN_BUILD),yes) +ifeq ($(OS),Darwin) LINKAGE = else debug : LINKAGE = -static @@ -42,7 +47,7 @@ all default: $(DEFAULT_BUILD) VERSION=\"1.2.1\" -ifeq ($(DARWIN_BUILD),yes) +ifeq ($(OS),Darwin) CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFLAC__SYS_DARWIN -DWORDS_BIGENDIAN else CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 diff --git a/build/exe.mk b/build/exe.mk index 65a1987f..b9c1c01a 100644 --- a/build/exe.mk +++ b/build/exe.mk @@ -21,7 +21,7 @@ include $(topdir)/build/config.mk -ifeq ($(DARWIN_BUILD),yes) +ifeq ($(OS),Darwin) CC = cc CCC = c++ else @@ -47,8 +47,12 @@ release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -finline-functions -D LFLAGS = -L$(LIBPATH) -DEBUG_OBJS = $(SRCS_C:%.c=%.debug.o) $(SRCS_CC:%.cc=%.debug.o) $(SRCS_CPP:%.cpp=%.debug.o) $(SRCS_NASM:%.nasm=%.debug.o) -RELEASE_OBJS = $(SRCS_C:%.c=%.release.o) $(SRCS_CC:%.cc=%.release.o) $(SRCS_CPP:%.cpp=%.release.o) $(SRCS_NASM:%.nasm=%.release.o) +DEBUG_OBJS = $(SRCS_C:%.c=%.debug.o) $(SRCS_CC:%.cc=%.debug.o) $(SRCS_CPP:%.cpp=%.debug.o) $(SRCS_NASM:%.nasm=%.debug.o) $(SRCS_S:%.s=%.debug.o) +RELEASE_OBJS = $(SRCS_C:%.c=%.release.o) $(SRCS_CC:%.cc=%.release.o) $(SRCS_CPP:%.cpp=%.release.o) $(SRCS_NASM:%.nasm=%.release.o) $(SRCS_S:%.s=%.release.o) +ifeq ($(PROC),x86_64) +DEBUG_PIC_OBJS = $(SRCS_C:%.c=%.debug.pic.o) $(SRCS_CC:%.cc=%.debug.pic.o) $(SRCS_CPP:%.cpp=%.debug.pic.o) $(SRCS_NASM:%.nasm=%.debug.pic.o) $(SRCS_S:%.s=%.debug.pic.o) +RELEASE_PIC_OBJS = $(SRCS_C:%.c=%.release.pic.o) $(SRCS_CC:%.cc=%.release.pic.o) $(SRCS_CPP:%.cpp=%.release.pic.o) $(SRCS_NASM:%.nasm=%.release.pic.o) $(SRCS_S:%.s=%.release.pic.o) +endif debug : $(DEBUG_PROGRAM) valgrind: $(DEBUG_PROGRAM) @@ -56,41 +60,25 @@ release : $(RELEASE_PROGRAM) # by default on OS X we link with static libs as much as possible -$(DEBUG_PROGRAM) : $(DEBUG_OBJS) -ifeq ($(DARWIN_BUILD),yes) +$(DEBUG_PROGRAM) : $(DEBUG_OBJS) $(DEBUG_PIC_OBJS) +ifeq ($(OS),Darwin) $(LINK) -o $@ $(DEBUG_OBJS) $(EXPLICIT_LIBS) else $(LINK) -o $@ $(DEBUG_OBJS) $(LFLAGS) $(LIBS) endif -$(RELEASE_PROGRAM) : $(RELEASE_OBJS) -ifeq ($(DARWIN_BUILD),yes) +$(RELEASE_PROGRAM) : $(RELEASE_OBJS) $(RELEASE_PIC_OBJS) +ifeq ($(OS),Darwin) $(LINK) -o $@ $(RELEASE_OBJS) $(EXPLICIT_LIBS) else $(LINK) -o $@ $(RELEASE_OBJS) $(LFLAGS) $(LIBS) endif -%.debug.o %.release.o : %.c - $(CC) $(CFLAGS) -c $< -o $@ -%.debug.o %.release.o : %.cc - $(CCC) $(CFLAGS) -c $< -o $@ -%.debug.o %.release.o : %.cpp - $(CCC) $(CFLAGS) -c $< -o $@ -%.debug.i %.release.i : %.c - $(CC) $(CFLAGS) -E $< -o $@ -%.debug.i %.release.i : %.cc - $(CCC) $(CFLAGS) -E $< -o $@ -%.debug.i %.release.i : %.cpp - $(CCC) $(CFLAGS) -E $< -o $@ - -%.debug.o : %.nasm - $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ -g $< -o $@ -%.release.o : %.nasm - $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ $< -o $@ +include $(topdir)/build/compile.mk .PHONY : clean clean : - -rm -f $(DEBUG_OBJS) $(RELEASE_OBJS) $(OBJPATH)/*/bin/$(PROGRAM_NAME) + -rm -f $(DEBUG_OBJS) $(RELEASE_OBJS) $(DEBUG_PIC_OBJS) $(RELEASE_PIC_OBJS) $(OBJPATH)/*/bin/$(PROGRAM_NAME) .PHONY : depend depend: diff --git a/build/lib.mk b/build/lib.mk index 8b85c2d7..db6d3088 100644 --- a/build/lib.mk +++ b/build/lib.mk @@ -21,7 +21,7 @@ include $(topdir)/build/config.mk -ifeq ($(DARWIN_BUILD),yes) +ifeq ($(OS),Darwin) CC = cc CCC = c++ else @@ -35,7 +35,7 @@ OBJPATH = $(topdir)/obj LIBPATH = $(OBJPATH)/$(BUILD)/lib DEBUG_LIBPATH = $(OBJPATH)/debug/lib RELEASE_LIBPATH = $(OBJPATH)/release/lib -ifeq ($(DARWIN_BUILD),yes) +ifeq ($(OS),Darwin) STATIC_LIB_SUFFIX = a DYNAMIC_LIB_SUFFIX = dylib else @@ -50,7 +50,7 @@ DEBUG_STATIC_LIB = $(DEBUG_LIBPATH)/$(STATIC_LIB_NAME) DEBUG_DYNAMIC_LIB = $(DEBUG_LIBPATH)/$(DYNAMIC_LIB_NAME) RELEASE_STATIC_LIB = $(RELEASE_LIBPATH)/$(STATIC_LIB_NAME) RELEASE_DYNAMIC_LIB = $(RELEASE_LIBPATH)/$(DYNAMIC_LIB_NAME) -ifeq ($(DARWIN_BUILD),yes) +ifeq ($(OS),Darwin) LINKD = $(CC) -dynamiclib -flat_namespace -undefined suppress -install_name $(DYNAMIC_LIB) else LINKD = $(CC) -shared @@ -64,6 +64,10 @@ LFLAGS = -L$(LIBPATH) DEBUG_OBJS = $(SRCS_C:%.c=%.debug.o) $(SRCS_CC:%.cc=%.debug.o) $(SRCS_CPP:%.cpp=%.debug.o) $(SRCS_NASM:%.nasm=%.debug.o) $(SRCS_S:%.s=%.debug.o) RELEASE_OBJS = $(SRCS_C:%.c=%.release.o) $(SRCS_CC:%.cc=%.release.o) $(SRCS_CPP:%.cpp=%.release.o) $(SRCS_NASM:%.nasm=%.release.o) $(SRCS_S:%.s=%.release.o) +ifeq ($(PROC),x86_64) +DEBUG_PIC_OBJS = $(SRCS_C:%.c=%.debug.pic.o) $(SRCS_CC:%.cc=%.debug.pic.o) $(SRCS_CPP:%.cpp=%.debug.pic.o) $(SRCS_NASM:%.nasm=%.debug.pic.o) $(SRCS_S:%.s=%.debug.pic.o) +RELEASE_PIC_OBJS = $(SRCS_C:%.c=%.release.pic.o) $(SRCS_CC:%.cc=%.release.pic.o) $(SRCS_CPP:%.cpp=%.release.pic.o) $(SRCS_NASM:%.nasm=%.release.pic.o) $(SRCS_S:%.s=%.release.pic.o) +endif debug : $(DEBUG_STATIC_LIB) $(DEBUG_DYNAMIC_LIB) valgrind: $(DEBUG_STATIC_LIB) $(DEBUG_DYNAMIC_LIB) @@ -75,49 +79,33 @@ $(DEBUG_STATIC_LIB): $(DEBUG_OBJS) $(RELEASE_STATIC_LIB): $(RELEASE_OBJS) $(LINK) $@ $(RELEASE_OBJS) && ranlib $@ -$(DEBUG_DYNAMIC_LIB) : $(DEBUG_OBJS) -ifeq ($(DARWIN_BUILD),yes) +$(DEBUG_DYNAMIC_LIB) : $(DEBUG_OBJS) $(DEBUG_PIC_OBJS) +ifeq ($(OS),Darwin) echo Not building dynamic lib, command is: $(LINKD) -o $@ $(DEBUG_OBJS) $(LFLAGS) $(LIBS) -lc else +ifeq ($(PROC),x86_64) + $(LINKD) -o $@ $(DEBUG_PIC_OBJS) $(LFLAGS) $(LIBS) +else $(LINKD) -o $@ $(DEBUG_OBJS) $(LFLAGS) $(LIBS) endif +endif -$(RELEASE_DYNAMIC_LIB) : $(RELEASE_OBJS) -ifeq ($(DARWIN_BUILD),yes) +$(RELEASE_DYNAMIC_LIB) : $(RELEASE_OBJS) $(RELEASE_PIC_OBJS) +ifeq ($(OS),Darwin) echo Not building dynamic lib, command is: $(LINKD) -o $@ $(RELEASE_OBJS) $(LFLAGS) $(LIBS) -lc else +ifeq ($(PROC),x86_64) + $(LINKD) -o $@ $(RELEASE_PIC_OBJS) $(LFLAGS) $(LIBS) +else $(LINKD) -o $@ $(RELEASE_OBJS) $(LFLAGS) $(LIBS) endif - -%.debug.o %.release.o : %.c - $(CC) $(CFLAGS) -c $< -o $@ -%.debug.o %.release.o : %.cc - $(CCC) $(CFLAGS) -c $< -o $@ -%.debug.o %.release.o : %.cpp - $(CCC) $(CFLAGS) -c $< -o $@ -%.debug.i %.release.i : %.c - $(CC) $(CFLAGS) -E $< -o $@ -%.debug.i %.release.i : %.cc - $(CCC) $(CFLAGS) -E $< -o $@ -%.debug.i %.release.i : %.cpp - $(CCC) $(CFLAGS) -E $< -o $@ - -%.debug.o %.release.o : %.s -ifeq ($(DARWIN_BUILD),yes) - #$(CC) -c -arch ppc -Wall -force_cpusubtype_ALL $< -o $@ - $(AS) -arch ppc -force_cpusubtype_ALL $< -o $@ -else - $(AS) $< -o $@ endif -%.debug.o : %.nasm - $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ -g $< -o $@ -%.release.o : %.nasm - $(NASM) -f elf -d OBJ_FORMAT_elf -i ia32/ $< -o $@ +include $(topdir)/build/compile.mk .PHONY : clean clean : - -rm -f $(DEBUG_OBJS) $(RELEASE_OBJS) $(OBJPATH)/*/lib/$(STATIC_LIB_NAME) $(OBJPATH)/*/lib/$(DYNAMIC_LIB_NAME) + -rm -f $(DEBUG_OBJS) $(RELEASE_OBJS) $(DEBUG_PIC_OBJS) $(RELEASE_PIC_OBJS) $(OBJPATH)/*/lib/$(STATIC_LIB_NAME) $(OBJPATH)/*/lib/$(DYNAMIC_LIB_NAME) .PHONY : depend depend: |