mingw32-Makefile.mak 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #
  2. # This is a minimal Make file designed to be called from within a MinGW Cmd prompt.
  3. # So if the distro ZIP file has been unpacked into C:\nodemcu-firmware then
  4. #
  5. # C:\nodemcu-firmware\app\lua\luac_cross> mingw32-make -f mingw32-makefile.mak
  6. #
  7. # will create the WinX EXE luac.cross.exe within the root C:\nodemcu-firmware folder.
  8. # This make has been stripped down to use the basic non-graphics MinGW32 install and
  9. # standard Windows commands available at the Cmd> prompt. This make is quite separate
  10. # from the normal toolchain build.
  11. .NOTPARALLEL:
  12. CCFLAGS:= -I.. -I../../include -I../../libc -I../../uzlib -Wall
  13. LDFLAGS:= -lm -Wl,-Map=mapfile
  14. DEFINES += -DLUA_CROSS_COMPILER -DLUA_OPTIMIZE_MEMORY=2
  15. CFLAGS = $(CCFLAGS) $(DEFINES) $(EXTRA_CCFLAGS) $(STD_CFLAGS) $(INCLUDES)
  16. TARGET = host
  17. CC := gcc
  18. ifeq ($(FLAVOR),debug)
  19. CCFLAGS += -O0 -g
  20. TARGET_LDFLAGS += -O0 -g
  21. DEFINES += -DLUA_DEBUG_BUILD
  22. else
  23. FLAVOR = release
  24. CCFLAGS += -O2
  25. TARGET_LDFLAGS += -O2
  26. endif
  27. #
  28. # C files needed to compile luac.cross
  29. #
  30. LUACSRC := luac.c lflashimg.c liolib.c loslib.c print.c
  31. LUASRC := lapi.c lauxlib.c lbaselib.c lcode.c ldblib.c ldebug.c \
  32. ldo.c ldump.c lfunc.c lgc.c linit.c llex.c \
  33. lmathlib.c lmem.c loadlib.c lobject.c lopcodes.c lparser.c \
  34. lrotable.c lstate.c lstring.c lstrlib.c ltable.c ltablib.c \
  35. ltm.c lundump.c lvm.c lzio.c
  36. UZSRC := uzlib_deflate.c crc32.c
  37. #
  38. # This relies on the files being unique on the vpath
  39. #
  40. SRC := $(LUACSRC) $(LUASRC) $(UZSRC)
  41. vpath %.c .:..:../../libc:../../uzlib
  42. INCS := -I.. -I../.. -I../../libc -I../../uzlib
  43. ODIR := .output\obj
  44. OBJS := $(SRC:%.c=$(ODIR)/%.o)
  45. IMAGE := ../../../luac.cross.exe
  46. .PHONY: test clean all
  47. all: $(DEPS) $(IMAGE)
  48. $(IMAGE) : $(OBJS)
  49. $(CC) $(OBJS) -o $@ $(LDFLAGS)
  50. test :
  51. @echo CC: $(CC)
  52. @echo SRC: $(SRC)
  53. @echo OBJS: $(OBJS)
  54. clean :
  55. del /s /q $(ODIR)
  56. $(ODIR)/%.o: %.c
  57. @mkdir $(ODIR) || echo .
  58. $(CC) $(INCS) $(CFLAGS) -o $@ -c $<