Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. prefix := $(WASMBUILDS)/libc/
  2. .DEFAULT_GOAL := all
  3.  
  4. PATHTOMUSLSRC := ./emscripten/system/lib/libc/musl/src
  5. MUSLMODULES := $(shell find $(PATHTOMUSLSRC) -mindepth 1 -maxdepth 1 -type d)
  6.  
  7. IGNOREDMODULES := ipc passwd thread signal sched ipc time linux aio exit legacy mq process search setjmp env ldso conf
  8. IGNOREDFILES := getaddrinfo.c getnameinfo.c inet_addr.c res_query.c gai_strerror.c proto.c gethostbyaddr.c gethostbyaddr_r.c gethostbyname.c gethostbyname2_r.c gethostbyname_r.c gethostbyname2.c usleep.c alarm.c syscall.c _exit.c
  9.  
  10. PROCESSEDMODULES := $(filter-out $(addprefix %/, $(IGNOREDMODULES)), $(MUSLMODULES))
  11. CANDIDATEFILES := $(foreach module, $(PROCESSEDMODULES), $(shell find $(module) -name '*.c'))
  12. PATHTODLMALLOC := ./emscripten/system/lib/dlmalloc.c
  13. WASMLIBCFILES := $(PATHTODLMALLOC) $(filter-out $(addprefix %/, $(IGNOREDFILES)), $(CANDIDATEFILES))
  14.  
  15. WASMLIBCNAMES := $(notdir $(basename $(WASMLIBCFILES)))
  16. WASMOBJS := $(addprefix obj/, $(addsuffix .o, $(WASMLIBCNAMES)))
  17.  
  18. vpath %.c $(sort $(dir $(WASMLIBCFILES)))
  19.  
  20. obj lib:
  21. mkdir $@
  22.  
  23. $(WASMOBJS): obj/%.o: %.c | obj
  24. @$$CC $$CFLAGS -I ./emscripten/system/lib/libc/musl/src/internal -Os \
  25. -Werror=implicit-function-declaration -Wno-return-type -Wno-parentheses \
  26. -Wno-ignored-attributes -Wno-shift-count-overflow -Wno-shift-negative-value \
  27. -Wno-dangling-else -Wno-unknown-pragmas -Wno-shift-op-parentheses -D __EMSCRIPTEN__ \
  28. -Wno-string-plus-int -Wno-logical-op-parentheses -Wno-bitwise-op-parentheses \
  29. -Wno-visibility -Wno-pointer-sign -isystem ./emscripten/system/include \
  30. -isystem ./emscripten/system/include/libc -isystem ./emscripten/system/lib/libc/musl/arch/emscripten \
  31. -static -c -o $@ $<
  32.  
  33. lib/libc.a: $(WASMOBJS) | lib
  34. @$$AR rcs $@ $(WASMOBJS)
  35.  
  36. all: lib/libc.a
  37.  
  38. clean:
  39. rm -rf lib
  40. rm -rf obj
  41.  
  42. install: lib/libc.a
  43. mkdir $(prefix)/lib
  44. mkdir $(prefix)/include
  45. cp ./lib/libc.a $(prefix)/lib/
  46. cp ./emscripten/system/include/emscripten.h $(prefix)/include/
  47. cp -R ./emscripten/system/include/libc/* $(prefix)/include/
  48. rm $(prefix)/include/bits
  49. cp -R ./emscripten/system/include/compat/ $(prefix)/include/
  50. cp -R ./emscripten/system/include/emscripten $(prefix)/include/
  51. cp -R ./emscripten/system/lib/libc/musl/arch/emscripten/* $(prefix)/include/
  52.  
  53. .PHONY: all clean install
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement