diff options
Diffstat (limited to 'Rules.mak')
-rw-r--r-- | Rules.mak | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/Rules.mak b/Rules.mak new file mode 100644 index 000000000..7191a56b3 --- /dev/null +++ b/Rules.mak @@ -0,0 +1,106 @@ +# Rules.make for uCLibc +# +# This file contains rules which are shared between multiple Makefiles. +# Feel free to adjust to taste... +# -Erik Andersen <andersen@lineo.com> < andersee@debian.org> +# +# Copyright (C) 2000 by Lineo, inc. +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU Library General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA +# +# Derived in part from the Linux-8086 C library, the GNU C Library, and several +# other sundry sources. Files within this library are copyright by their +# respective copyright holders. + +PROG := libc.a +VERSION := 0.95 +BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z") +export VERSION + +# Set the following to `true' to make a debuggable build. +# Do not enable this for production builds... +DODEBUG = false + +# This specifies which malloc implementation is used. +# "malloc-simple" is very, very small, but is also very, very dumb +# and does not try to make good use of memory or clean up after itself. +# "malloc" on the other hand is a bit bigger, but is pretty smart thereby +# minimizing memory wastage and reusing already allocated memory. This +# can be lots faster and safer IMHO. +#MALLOC = malloc-simple +MALLOC = malloc + +# If you want large file summit support (greater then 2 Gib), +# turn this on. This has no effect unless your kernel supports +# lfs. This surrently does nothing... +DOLFS = false + +# Disable this if your CPU has a memory management unit (MMU) +HAS_MMU = true + +# Disable this if your CPU has a floating point unit (FPU) +HAS_FLOATS = true + +# If you are running a cross compiler, you may want to set this +# to something more interesting... +CROSS = #powerpc-linux- +CC = $(CROSS)gcc +STRIPTOOL = $(CROSS)strip + + +#-------------------------------------------------------- +# Nothing beyond this point should need be touched by mere +# mortals so you should probably leave this stuff alone. +#-------------------------------------------------------- + +GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp") + +ARFLAGS=r + +CCFLAGS= $(OPTIMIZATION) -fno-builtin -nostdinc $(CPUFLAGS) -Dlinux -D__linux__ -I$(TOPDIR)include -I$(GCCINCDIR) -I. -D__PIC__ -D__LIBC__ +CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS) + +ifeq ($(DODEBUG),true) + CFLAGS += -Wall -g -D__PIC__ + LDFLAGS = -nostdlib +else + CFLAGS += -Wall -D__PIC__ #-fomit-frame-pointer + LDFLAGS = -s -nostdlib +endif + +ifndef $(PREFIX) + PREFIX = `pwd`/_install +endif + +ifneq ($(HAS_MMU),true) + CFLAGS += -D__HAS_NO_MMU__ +endif + +ifneq ($(HAS_FLOATS),true) + CFLAGS += -D__HAS_NO_FLOATS__ +endif + + + +# Use '-ffunction-sections -fdata-sections' and '--gc-sections' if they work +# to try and strip out any unused junk automagically.... +# +ifeq ($(shell $(CC) -ffunction-sections -fdata-sections -S \ + -o /dev/null -xc /dev/null && $(LD) --gc-sections -v >/dev/null && echo 1),1) + CFLAGS += -ffunction-sections -fdata-sections + LDFLAGS += --gc-sections +endif + + |