File: Makefile

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (31 lines) | stat: -rwxr-xr-x 1,237 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Build swift modules with debug info

# Don't use 'all' target.  There is a default build rule that will kick in that
# will be wrong.  We use 'first' so that the normal 'make' command (without
# a target) selects the first (but not 'all') target so we avoid the undesired
# default behavior.
EXE:=a.out
all: $(EXE)

SWIFT_OBJC_INTEROP=1
include Makefile.rules

# Add back the SDK settings to the swift flags.  Normally this happens
# automatically, but since we're overriding the normal swiftc invocation,
# we're not specifying SWIFT_SOURCES, and thus don't get the SDK.
SWIFTFLAGS+=-sdk "$(SWIFTSDKROOT)"

$(EXE): objc_main.m A.swift.o B.swift.o
	$(CC) $(CFLAGS) -c -I. $< -fobjc-arc -o $(BUILDDIR)/objc_main.o
	$(SWIFTC) $(patsubst -g,,$(SWIFTFLAGS)) -o $@ $(BUILDDIR)/objc_main.o $(BUILDDIR)/A.swift.o $(BUILDDIR)/B.swift.o -L$(BUILDDIR) -Xlinker -add_ast_path -Xlinker A.swiftmodule -Xlinker -add_ast_path -Xlinker B.swiftmodule
ifneq "$(CODESIGN)" ""
	$(CODESIGN) -s - "$@"
endif

%.swift.o: %.swift
	$(MAKE) -f $(MAKEFILE_RULES) \
		DYLIB_NAME=$(patsubst %.swift.o,%,$@) \
		SWIFT_SOURCES=$(patsubst %.swift.o,%.swift,$@) \
		SWIFT_OBJC_HEADER=$(patsubst %.swift.o,%-swift.h,$@) \
		MODULENAME=$(patsubst %.swift.o,%,$@) \
		$@