mingw32-Makefile.mak 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. LIBCSRC := c_stdlib.c
  37. UZSRC := uzlib_deflate.c crc32.c
  38. #
  39. # This relies on the files being unique on the vpath
  40. #
  41. SRC := $(LUACSRC) $(LUASRC) $(LIBCSRC) $(UZSRC)
  42. vpath %.c .:..:../../libc:../../uzlib
  43. INCS := -I.. -I../.. -I../../libc -I../../uzlib
  44. ODIR := .output\obj
  45. OBJS := $(SRC:%.c=$(ODIR)/%.o)
  46. IMAGE := ../../../luac.cross.exe
  47. .PHONY: test clean all
  48. all: $(DEPS) $(IMAGE)
  49. $(IMAGE) : $(OBJS)
  50. $(CC) $(OBJS) -o $@ $(LDFLAGS)
  51. test :
  52. @echo CC: $(CC)
  53. @echo SRC: $(SRC)
  54. @echo OBJS: $(OBJS)
  55. clean :
  56. del /s /q $(ODIR)
  57. $(ODIR)/%.o: %.c
  58. @mkdir $(ODIR) || echo .
  59. $(CC) $(INCS) $(CFLAGS) -o $@ -c $<