Makefile 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. CC = gcc
  2. AS = gcc
  3. AR = ar rcs
  4. CFLAGS = -Wall -fPIC -O2 -std=gnu99 -fgnu89-inline -Wall -U_FORTIFY_SOURCE \
  5. -fno-omit-frame-pointer\
  6. -fno-stack-protector -fno-builtin \
  7. -I. -Iinclude -I../.. -I../../../include -I../../../lib -I../../../ipc/linux \
  8. -I../../../linux-3.5/graphene
  9. ASFLAGS = -DPIC -DSHARED -fPIC -DASSEMBLER -Wa,--noexecstack \
  10. -x assembler-with-cpp \
  11. -I. -Iinclude -I../.. -I../../../include
  12. ARFLAGS =
  13. host_target = libpal-FreeBSD.a ../../pal-gdb
  14. defs = -DIN_PAL -DPAL_DIR="$(PAL_DIR)"
  15. objs = $(addprefix db_,files devices pipes sockets streams memory threading \
  16. semaphore mutex events process object main rtld misc ipc \
  17. exception) rfork_thread
  18. graphene_lib = ../../../lib/graphene-lib.a
  19. headers = $(wildcard *.h) $(wildcard ../../*.h) $(wildcard ../../../lib/*.h)
  20. .PHONY: all
  21. all: $(host_target)
  22. ifeq ($(DEBUG),1)
  23. CC += -g -gdwarf-2 -gstrict-dwarf
  24. CFLAGS += -DDEBUG
  25. export DEBUG
  26. endif
  27. ../../host_endian.h: host_endian.h
  28. $(MAKE) -C ../.. $<
  29. ../../pal-gdb: pal-gdb
  30. sed -e 's:\$$(PAL_DIR):$(PWD):g' $< > $@
  31. chmod 755 $@
  32. libpal-FreeBSD.a: $(addsuffix .o,$(objs)) $(graphene_lib)
  33. @echo [ host/FreeBSD/$@ ]
  34. @$(AR) $(ARFLAGS) $@ $^
  35. %.asm: %.c $(headers)
  36. $(CC) $(CFLAGS) $(defs) -c $< -o $<.o
  37. @objdump -S $<.o > $@
  38. @rm $<.o
  39. %.o: %.c $(headers)
  40. @echo [ host/FreeBSD/$@ ]
  41. @$(CC) $(CFLAGS) $(defs) -c $< -o $@
  42. %.e: %.c $(headers)
  43. @echo [ host/FreeBSD/$@ ]
  44. @$(CC) $(CFLAGS) $(defs) -E $< -o $@
  45. %.o: %.S $(headers)
  46. @echo [ host/FreeBSD/$@ ]
  47. @$(AS) $(ASFLAGS) $(defs) -c $< -o $@
  48. %.e: %.S $(headers)
  49. @echo [ host/FreeBSD/$@ ]
  50. @$(AS) $(ASFLAGS) $(defs) -E $< -o $@
  51. .PHONY: clean
  52. clean:
  53. rm -f $(addsuffix .o,$(objs)) $(host_target)