source: trunk/source/lisp-kernel/linuxarm/Makefile @ 15137

Last change on this file since 15137 was 15137, checked in by rme, 8 years ago

In the Makefiles for the Linux ports, use the --no-as-needed
linker flag to ensure that the libraries that we specify
really get loaded for us.

Undo r15132 and r15133, which added references to external
symbols in libm to ensure that it was linked in. Also
remove a similar kludge of long standing in ppc-asmutils.s.

File size: 2.8 KB
Line 
1#
2#   Copyright (C) 2010 Clozure Associates
3#   This file is part of Clozure CL. 
4#
5#   Clozure CL is licensed under the terms of the Lisp Lesser GNU Public
6#   License , known as the LLGPL and distributed with Clozure CL as the
7#   file "LICENSE".  The LLGPL consists of a preamble and the LGPL,
8#   which is distributed with Clozure CL as the file "LGPL".  Where these
9#   conflict, the preamble takes precedence. 
10#
11#   Clozure CL is referenced in the preamble as the "LIBRARY."
12#
13#   The LLGPL is also available online at
14#   http://opensource.franz.com/preamble.html
15
16SVN_REVISION=$(shell svnversion || echo "unknown")
17
18VPATH = ../
19RM = /bin/rm
20# Versions of GNU as >= 2.9.1 all seem to work
21# AS = gas-2.9.1
22AS = as
23M4 = m4
24ASFLAGS = -mfpu=vfp -march=armv7-a
25M4FLAGS = -DLINUX -DARM
26CDEFINES = -DLINUX -DARM -D_REENTRANT -D_GNU_SOURCE -DUSE_FUTEX -DSVN_REVISION=$(SVN_REVISION)
27CDEBUG = -g
28COPT = -O2
29# Once in a while, -Wformat says something useful.  The odds are against that,
30# however.
31WFORMAT = -Wno-format
32PLATFORM_H = platform-linuxarm.h
33
34# If the linker supports a "--hash-style=" option, use traditional
35# Sysv hash tables.  (If it doesn't support that option, assume
36# that traditional hash tables will be used by default.)
37ld_has_hash_style = $(shell $(LD) --help | grep "hash-style=")
38ifeq ($(ld_has_hash_style),)
39HASH_STYLE=
40else
41HASH_STYLE="-Wl,--hash-style=sysv"
42endif
43
44
45# Likewise, some versions of GAS may need a "-a32" flag, to force the
46
47# output file to be 32-bit compatible.
48
49A32 = $(shell ($(AS) --help -v 2>&1 | grep -q -e "-a32") && /bin/echo "-a32")
50
51.s.o:
52        $(M4) $(M4FLAGS) -I../ $< | $(AS) $(A32) $(ASFLAGS) -o $@
53.c.o:
54        $(CC) -include ../$(PLATFORM_H) -c $< $(CDEFINES) $(CDEBUG) $(COPT) -marm $(WFORMAT)  -o $@
55
56SPOBJ = pad.o  arm-spentry.o
57ASMOBJ = arm-asmutils.o imports.o
58
59COBJ  = pmcl-kernel.o gc-common.o arm-gc.o bits.o  arm-exceptions.o \
60        image.o thread_manager.o lisp-debug.o memory.o unix-calls.o
61
62DEBUGOBJ = lispdcmd.o plprint.o plsym.o albt.o arm_print.o
63KERNELOBJ= $(COBJ) arm-asmutils.o  imports.o
64
65SPINC = lisp.s m4macros.m4 arm-constants.s arm-macros.s errors.s arm-uuo.s
66
67CHEADERS = area.h bits.h arm-constants.h lisp-errors.h gc.h lisp.h \
68        lisp-exceptions.h lisp_globals.h macros.h memprotect.h image.h \
69        threads.h arm-exceptions.h $(PLATFORM_H)
70
71# Subprims linked into the kernel ?
72# Yes:
73
74KSPOBJ = $(SPOBJ)
75all:    ../../armcl
76
77
78# No:
79
80# KSPOBJ=
81# all:  ../../ppccl ../../subprims.so
82
83OSLIBS = -ldl -lm -lpthread
84
85
86../../armcl:    $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ)
87        $(CC)  $(CDEBUG)  -Wl,--export-dynamic $(HASH_STYLE) -o $@ -T ./armlinux.x $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) -Wl,--no-as-needed $(OSLIBS)
88
89
90$(SPOBJ): $(SPINC)
91$(ASMOBJ): $(SPINC)
92$(COBJ): $(CHEADERS)
93$(DEBUGOBJ): $(CHEADERS) lispdcmd.h
94
95
96cclean:
97        $(RM) -f $(KERNELOBJ) $(DEBUGOBJ) ../../ppccl
98
99clean:  cclean
100        $(RM) -f $(SPOBJ)
101
102strip:  ../../ppccl
103        strip -g ../../ppccl
Note: See TracBrowser for help on using the repository browser.