llvm-6502/runtime/GCCLibraries/crtend/Makefile
Chris Lattner 3880f1afd6 Remove the only use of FAKE_SOURCES
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25704 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 22:06:23 +00:00

74 lines
2.7 KiB
Makefile

##===- runtime/GCCLibraries/crtend/Makefile ----------------*- Makefile -*-===##
#
# The LLVM Compiler Infrastructure
#
# This file was developed by the LLVM research group and is distributed under
# the University of Illinois Open Source License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##
#
# This directory contains the C and C++ runtime libraries for the LLVM GCC
# front-ends. See the README.txt file for more details.
#
# Since this archive has strange requirements, we use some custom rules for
# building it.
#
##===----------------------------------------------------------------------===##
LEVEL = ../../..
DONT_BUILD_RELINKED = 1
LIBRARYNAME = crtend
BYTECODE_DESTINATION = $(CFERuntimeLibDir)
# Note: We're using FAKE_SOURCES because the comp_*.c don't really exist.
# However this makefile builds comp_*.bc and that's what we want in the library.
# The FAKE_SOURCES variable supports this kind of construction. It uses the
# FAKE_SOURCES to determine a list of things to build, but doesn't use
# FAKE_SOURCES for dependencies, distribution, etc. It is assumed the makefile
# will know how to build the objects eventhough the sources don't exist.
MainSrc := crtend.c listend.ll
GenericEHSrc := Exception.cpp
SJLJEHSrc := SJLJ-Exception.cpp
EXTRA_DIST := $(MainSrc) $(GenericEHSrc) $(SJLJEHSrc) \
comp_main.lst comp_genericeh.lst comp_sjljeh.lst
include $(LEVEL)/Makefile.common
MainObj := $(ObjDir)/crtend.bc $(ObjDir)/listend.bc
GenericEHObj := $(ObjDir)/Exception.bc
SJLJEHObj := $(ObjDir)/SJLJ-Exception.bc
# __main and ctor/dtor support component
$(ObjDir)/comp_main.bc: $(MainObj)
$(Echo) Linking $(notdir $@) component...
$(Verb) $(GCCLD) -link-as-library \
-internalize-public-api-file=$(PROJ_SRC_DIR)/comp_main.lst \
$(MainObj) -o $@
# Generic exception handling support runtime.
$(ObjDir)/comp_genericeh.bc: $(GenericEHObj)
$(Echo) Linking $(notdir $@) component...
$(Verb) $(GCCLD) -link-as-library \
-internalize-public-api-file=$(PROJ_SRC_DIR)/comp_genericeh.lst \
$(GenericEHObj) -o $@
# setjmp/longjmp exception handling support runtime.
$(ObjDir)/comp_sjljeh.bc: $(SJLJEHObj)
$(Echo) Linking $(notdir $@) component...
$(Verb) $(GCCLD) -link-as-library \
-internalize-public-api-file=$(PROJ_SRC_DIR)/comp_sjljeh.lst \
$(SJLJEHObj) -o $@
SYMBOLHACKEDOBJS := $(ObjDir)/comp_main.bc $(ObjDir)/comp_genericeh.bc \
$(ObjDir)/comp_sjljeh.bc
all-local:: $(LibName.BCA)
$(LibName.BCA): $(SYMBOLHACKEDOBJS) $(LibDir)/.dir $(LLVMToolDir)/llvm-ar
$(Echo) Building $(BuildMode) Bytecode Archive $(notdir $@)
$(Verb) $(RM) -f $@
$(Verb) $(LArchive) $@ $(SYMBOLHACKEDOBJS)