]> Git Repo - uclibc-ng.git/blame - Rules.mak
Add an md5crypt test
[uclibc-ng.git] / Rules.mak
CommitLineData
2c8e931c 1# Rules.make for uClibc
af1112c8 2#
4d45bcff
EA
3# This file contains rules which are shared between multiple Makefiles. All
4# normal configuration options live in the file named "Config". You probably
dfca1817 5# should not mess with this file unless you know what you are doing...
af1112c8 6#
5a653498
EA
7# Copyright (C) 2000 by Lineo, inc.
8# Copyright (C) 2000,2001 Erik Andersen <[email protected]>
af1112c8
EA
9#
10# This program is free software; you can redistribute it and/or modify it under
11# the terms of the GNU Library General Public License as published by the Free
12# Software Foundation; either version 2 of the License, or (at your option) any
13# later version.
14#
15# This program is distributed in the hope that it will be useful, but WITHOUT
16# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
91102e0d 17# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
af1112c8
EA
18# details.
19#
4d45bcff
EA
20# You should have received a copy of the GNU Library General Public License
21# along with this program; if not, write to the Free Software Foundation, Inc.,
22# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
af1112c8 23#
af1112c8 24
48b5bb26 25include $(TOPDIR)Config
af1112c8 26
c75d8083 27MAJOR_VERSION=0
6b172cd7 28MINOR_VERSION=9.9
3c735763 29VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)
c75d8083 30
0c156a80 31LIBNAME=libc.a
249cb00d 32SHARED_FULLNAME=libuClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so
c75d8083 33SHARED_MAJORNAME=libc.so.$(MAJOR_VERSION)
ffc7bb39 34UCLIBC_LDSO=ld-uClibc.so.$(MAJOR_VERSION)
f0da4aa1 35LIBC=$(TOPDIR)libc/libc.a
c75d8083 36
53cfafba
EA
37BUILDTIME = ${shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z"}
38GCCINCDIR = ${shell $(CC) -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp"}
47e0a806
DM
39NATIVE_ARCH = ${shell uname -m | sed \
40 -e 's/i.86/i386/' \
41 -e 's/sparc.*/sparc/' \
42 -e 's/arm.*/arm/g' \
43 -e 's/m68k.*/m68k/' \
44 -e 's/ppc/powerpc/g' \
45 -e 's/v850.*/v850/g' \
59c9d20a
EA
46 -e 's/sh[234].*/sh/' \
47 -e 's/mips.*/mips/' \
47e0a806 48 }
cbc40534 49ifeq ($(strip $(TARGET_ARCH)),)
47e0a806
DM
50TARGET_ARCH=${shell $(CC) -dumpmachine | sed -e s'/-.*//' \
51 -e 's/i.86/i386/' \
52 -e 's/sparc.*/sparc/' \
53 -e 's/arm.*/arm/g' \
54 -e 's/m68k.*/m68k/' \
55 -e 's/ppc/powerpc/g' \
56 -e 's/v850.*/v850/g' \
57 -e 's/sh[234]/sh/' \
59c9d20a 58 -e 's/mips.*/mips/' \
47e0a806 59 }
cbc40534 60endif
af1112c8 61
06d634ea 62# Some nice architecture specific optimizations
5a2610fb 63ifndef OPTIMIZATION
5811a4e8
EA
64
65
06d634ea 66# use '-Os' optimization if available, else use -O2, allow Config to override
f605da2f 67OPTIMIZATION += ${shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
53cfafba 68 then echo "-Os"; else echo "-O2" ; fi}
f605da2f
EA
69OPTIMIZATION += ${shell if $(CC) -falign-functions=1 -S -o /dev/null -xc \
70 /dev/null >/dev/null 2>&1; then echo "-falign-functions=1"; fi}
06d634ea
EA
71ifeq ($(strip $(TARGET_ARCH)),arm)
72 OPTIMIZATION+=-fstrict-aliasing
73endif
74ifeq ($(strip $(TARGET_ARCH)),i386)
75 OPTIMIZATION+=-march=i386
76 OPTIMIZATION += ${shell if $(CC) -mpreferred-stack-boundary=2 -S -o /dev/null -xc \
77 /dev/null >/dev/null 2>&1; then echo "-mpreferred-stack-boundary=2"; fi}
78 OPTIMIZATION += ${shell if $(CC) -malign-functions=0 -malign-jumps=0 -malign-loops=0 \
79 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo \
80 "-malign-functions=0 -malign-jumps=0 -malign-loops=0"; fi}
81 CPUFLAGS+=-pipe
82else
83 CPUFLAGS+=-pipe
84endif
5a2610fb 85endif
163df9f2 86
af1112c8
EA
87ARFLAGS=r
88
dd43462e
EA
89CFLAGS=$(WARNINGS) $(OPTIMIZATION) -fno-builtin -nostdinc $(CPUFLAGS) \
90 -nostdinc -I$(TOPDIR)include -I$(GCCINCDIR) -I. -D_LIBC $(ARCH_CFLAGS)
cbc40534 91NATIVE_CFLAGS=-O2 -Wall
af1112c8 92
7d5029c0 93ifeq ($(strip $(DODEBUG)),true)
ff044eda 94 CFLAGS += -g
75d013b1 95 LDFLAGS = -shared --warn-common --warn-once -z combreloc
350c0215 96 STRIPTOOL = /bin/true -Since_we_are_debugging
af1112c8 97else
cc800836 98 CFLAGS += -DNDEBUG #-fomit-frame-pointer
75d013b1 99 LDFLAGS = -s -shared --warn-common --warn-once -z combreloc
c5207a55
EA
100endif
101
08e0c24b 102ifeq ($(strip $(HAVE_SHARED)),true)
5811a4e8 103 DOPIC=true
96277cfc 104 LIBRARY_CACHE=#-DUSE_CACHE
5811a4e8
EA
105 ifeq ($(strip $(BUILD_UCLIBC_LDSO)),true)
106 LDSO=$(TOPDIR)lib/$(UCLIBC_LDSO)
107 DYNAMIC_LINKER=$(SHARED_LIB_LOADER_PATH)/$(UCLIBC_LDSO)
e356ea32 108 BUILD_DYNAMIC_LINKER=${shell cd $(TOPDIR)lib && pwd}/$(UCLIBC_LDSO)
5811a4e8
EA
109 else
110 LDSO=$(SYSTEM_LDSO)
59c9d20a 111 BUILD_UCLIBC_LDSO=false
5811a4e8
EA
112 DYNAMIC_LINKER=/lib/$(notdir $(SYSTEM_LDSO))
113 BUILD_DYNAMIC_LINKER=/lib/$(notdir $(SYSTEM_LDSO))
91307a36 114endif
eba708a6 115endif
dd43462e 116ifeq ($(strip $(DOPIC)),true)
5811a4e8 117 CFLAGS += -fPIC
dd43462e 118endif
e356ea32
EA
119ifeq ($(strip $(INCLUDE_THREADS)),true)
120 CFLAGS += -D_LIBC_REENTRANT
121endif
dfca1817 122
ae8937b0
EA
123# TARGET_PREFIX is the directory under which which the uClibc runtime
124# environment will be installed and used on the target system. The
125# result will look something like the following:
126# TARGET_PREFIX/
127# lib/ <contains all runtime and static libs>
128# usr/lib/ <this directory is searched for runtime libs>
129# etc/ <weher the shared library cache and configuration
130# information go if you enabled LIBRARY_CACHE above>
131# Very few people will need to change this value from the default...
132TARGET_PREFIX = /
af1112c8 133
This page took 0.080012 seconds and 4 git commands to generate.