source: branches/win64/lisp-kernel/win64/Makefile @ 8650

Last change on this file since 8650 was 8650, checked in by gb, 12 years ago

Don't strip leading underscores from symbols. (At least when the
win64 GCC is hosted on Cygwin, C symbols seem to have leading underscores,
and assembler expects them to.)

File size: 3.1 KB
Line 
1#
2#   Copyright (C) 2007 Clozure Associates
3#   This file is part of OpenMCL. 
4#
5#   OpenMCL is licensed under the terms of the Lisp Lesser GNU Public
6#   License , known as the LLGPL and distributed with OpenMCL as the
7#   file "LICENSE".  The LLGPL consists of a preamble and the LGPL,
8#   which is distributed with OpenMCL as the file "LGPL".  Where these
9#   conflict, the preamble takes precedence. 
10#
11#   OpenMCL 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
16
17VPATH = ../
18RM = /bin/rm
19# gcc64, as64: until there's a real win64 gcc, assume that gcc and gas
20# are installed under these names
21CC = x86_64-pc-mingw32-gcc
22AS = x86_64-pc-mingw32-as
23M4 = m4
24LD = x86_64-pc-mingw32-ld
25ASFLAGS = -g --64
26M4FLAGS = -DWIN64 -DWINDOWS -DX86 -DX8664 -DHAVE_TLS -DEMUTLS
27CDEFINES = -DWIN64 -DWINDOWS -D_REENTRANT -DX86 -DX8664 -D_GNU_SOURCE -DHAVE_TLS -DEMUTLS #-DDISABLE_EGC
28CDEBUG = -g
29COPT = -O0
30
31# If the linker supports a "--hash-style=" option, use traditional
32# SysV hash tables.  (If it doesn't support that option, assume
33# that traditional hash tables will be used by default.)
34ld_has_hash_style = $(shell $(LD) --help | grep "hash-style=")
35ifeq ($(ld_has_hash_style),)
36HASH_STYLE=
37else
38HASH_STYLE="-Wl,--hash-style=sysv"
39endif
40
41# There may be some confusion about whether or not C symbols have
42# leading underscores or not.  The assembler sources seem to
43# expect them to and mingw import libs seem to use them, but
44# it's not clear whether or not native win64 libraries use this
45# convention (and I'm not sure whether the Cygwin-hosted win64
46# toolchain behaves the same was as when hosted on Linux ...
47# The compiler default seems to be to use them; if we want to
48# suppress their use, uncomment the following:
49
50SUPPRESS_UNDERSCORES=#-fno-leading-underscore
51
52.s.o:
53        $(M4) $(M4FLAGS) -I../ $< | $(AS)  $(ASFLAGS) -o $@
54.c.o:
55        $(CC) -c $< $(CDEFINES) $(CDEBUG) $(COPT) ${SUPPRESS_UNDERSCORES} -m64 -o $@
56
57SPOBJ = pad.o x86-spjump64.o x86-spentry64.o x86-subprims64.o
58ASMOBJ = x86-asmutils64.o imports.o
59
60COBJ  = pmcl-kernel.o gc-common.o x86-gc.o bits.o  x86-exceptions.o \
61        image.o thread_manager.o lisp-debug.o memory.o
62
63DEBUGOBJ = lispdcmd.o plprint.o plsym.o xlbt.o x86_print.o
64KERNELOBJ= $(COBJ) x86-asmutils64.o  imports.o
65
66SPINC = lisp.s m4macros.m4 x86-constants.s x86-macros.s errors.s x86-uuo.s \
67        x86-constants64.s
68
69CHEADERS = area.h bits.h x86-constants.h lisp-errors.h gc.h lisp.h \
70        lisp-exceptions.h lisp_globals.h macros.h memprotect.h image.h \
71        Threads.h x86-constants64.h x86-exceptions.h lisptypes.h
72
73
74KSPOBJ = $(SPOBJ)
75all:    ../../wx86cl64.exe
76
77
78OSLIBS = 
79
80
81../../wx86cl64.exe:     $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) Makefile pei-x86-64.x
82        $(CC) -Wl,--image-base=0x10000 -Wl,-script=pei-x86-64.x -m64 $(CDEBUG)  -Wl,--export-dynamic $(HASH_STYLE) -o $@ $(USE_LINK_MAP) $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) $(OSLIBS)
83
84
85$(SPOBJ): $(SPINC)
86$(ASMOBJ): $(SPINC)
87$(COBJ): $(CHEADERS)
88$(DEBUGOBJ): $(CHEADERS) lispdcmd.h
89
90
91cclean:
92        $(RM) -f $(KERNELOBJ) $(DEBUGOBJ) ../../wx86cl64.exe
93
94clean:  cclean
95        $(RM) -f $(SPOBJ)
96
97strip:  ../../wx86cl64.exe
98        strip -g ../../wx86cl64.exe
Note: See TracBrowser for help on using the repository browser.