0day_dev/radare2-r2pipe/swift/Makefile
2020-08-07 13:48:00 -07:00

65 lines
1.2 KiB
Makefile

TARGET=ios
TARGET=osx
SDKROOT=SDKROOT="$(shell xcrun --show-sdk-path --sdk ${SDK})"
SC=$(SDKROOT) xcrun -sdk $(SDK) swiftc
SFILES=r2pipe.swift
USE_SPAWN=1
USE_CCALL=1
USE_NSURL_SESSION=1
USE_ENV_PIPE=1
ifeq ($(TARGET),ios)
SDK=iphoneos
CPU=arm64
IOS=9.2
# IOS=9.0 # deprecates Sync methods? Use Just library?
SC+=-target $(CPU)-apple-ios$(IOS)
USE_NSURL_SESSION=1
else
SDK=macosx
endif
SFLAGS=
ifeq ($(USE_CCALL),1)
SFLAGS+=-D USE_CCALL
SFLAGS+=-Iccall
SFLAGS+=-L/usr/local/lib
endif
ifeq ($(USE_ENV_PIPE),1)
SFLAGS+=-D USE_ENV_PIPE
endif
ifeq ($(USE_SPAWN),1)
SFLAGS+=-D USE_SPAWN
SFILES+=r2pipeNative.swift
endif
ifeq ($(USE_NSURL_SESSION),1)
SFLAGS+=-D USE_NSURL_SESSION
endif
all:
$(SC) $(SFLAGS) main.swift $(SFILES)
repl: lib
@echo
@echo
@echo "import R2Pipe;"
@echo "/* let r2p = R2Pipe(url:\"/bin/ls\")!; */"
@echo "let r2p = R2Pipe(url:\"http://cloud.radare.org/cmd/\")!;"
@echo "print(r2p.cmdSync(\"x\")!);"
@echo
@echo
swift -I . -L . -lR2Pipe -module-link-name R2Pipe
lib:
swiftc -emit-library -emit-object -module-name R2Pipe $(SFLAGS) $(SFILES)
ar rcs libR2Pipe.a r2pipe.o r2pipeNative.o
swiftc -emit-library -emit-module -module-name R2Pipe $(SFLAGS) $(SFILES)
clean:
rm -f main
rm -rf main.dSYM
.PHONY: lib repl all clean