|
| 1 | +#CFLAGS ?= -std=gnu99 -Os -Wall |
| 2 | +#CXXFLAGS ?= -std=gnu++11 -Os -Wall |
| 3 | + |
| 4 | +IDF_MODIFIED_DIR = idf/modified |
| 5 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR) |
| 6 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/driver/include |
| 7 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/fatfs/src |
| 8 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/freertos/include |
| 9 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/log/include |
| 10 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/newlib/include |
| 11 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/vfs/include |
| 12 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/vfs/include/sys |
| 13 | +IDF_INCLUDES += -I $(IDF_MODIFIED_DIR)/wear_levelling/include |
| 14 | + |
| 15 | +IDF_ORIG_DIR = idf/orig |
| 16 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR) |
| 17 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR)/driver/include |
| 18 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR)/driver/include/driver |
| 19 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR)/esp32/include |
| 20 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR)/fatfs/src |
| 21 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR)/sdmmc/include |
| 22 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR)/spi_flash/include |
| 23 | +IDF_INCLUDES += -I $(IDF_ORIG_DIR)/wear_levelling/private_include |
| 24 | +# OS = 1 |
| 25 | +ifdef OS |
| 26 | +ifeq ($(OS),Windows_NT) |
| 27 | + OS_IS_WIN = 1 |
| 28 | +endif |
| 29 | +endif |
| 30 | + |
| 31 | +ifdef OS_IS_WIN |
| 32 | + TARGET_OS := WINDOWS |
| 33 | + DIST_SUFFIX := windows |
| 34 | + ARCHIVE_CMD := 7z a |
| 35 | + ARCHIVE_EXTENSION := zip |
| 36 | + TARGET := mkfatfs.exe |
| 37 | + CC=gcc.exe |
| 38 | + CXX=g++.exe |
| 39 | + #MVA TARGET_CFLAGS := -mno-ms-bitfields |
| 40 | + CPATH := $(COMPONENT_INCLUDES) |
| 41 | + #TARGET_CFLAGS := -mno-ms-bitfields -std=gnu99 -Os -Wall -I $(COMPONENT_INCLUDES) -Itclap -Ifatfs -I. -D$(TARGET_OS) |
| 42 | + TARGET_CFLAGS := -mno-ms-bitfields -std=gnu99 -Os -Wall -Itclap -Ifatfs -I. -D$(TARGET_OS) $(IDF_INCLUDES) |
| 43 | + TARGET_CXXFLAGS := -std=gnu++11 -Os -Wall -Itclap -Ifatfs -I. -D$(TARGET_OS) $(IDF_INCLUDES) |
| 44 | + TARGET_LDFLAGS := -Wl,-static -static-libgcc |
| 45 | + |
| 46 | +else |
| 47 | + UNAME_S := $(shell uname -s) |
| 48 | + ifeq ($(UNAME_S),Linux) |
| 49 | + TARGET_OS := LINUX |
| 50 | + UNAME_P := $(shell uname -p) |
| 51 | + ifeq ($(UNAME_P),x86_64) |
| 52 | + DIST_SUFFIX := linux64 |
| 53 | + endif |
| 54 | + ifneq ($(filter %86,$(UNAME_P)),) |
| 55 | + DIST_SUFFIX := linux32 |
| 56 | + endif |
| 57 | + CC=gcc |
| 58 | + CXX=g++ |
| 59 | + TARGET_CFLAGS = -std=gnu99 -Os -Wall -Itclap -Ifatfs -I. -D$(TARGET_OS) -DVERSION=\"$(VERSION)\" -D__NO_INLINE__ $(IDF_INCLUDES) |
| 60 | + TARGET_CXXFLAGS = -std=gnu++11 -Os -Wall -Itclap -Ifatfs -I. -D$(TARGET_OS) -DVERSION=\"$(VERSION)\" -D__NO_INLINE__ $(IDF_INCLUDES) |
| 61 | + TARGET_LDFLAGS = |
| 62 | + endif |
| 63 | + ifeq ($(UNAME_S),Darwin) |
| 64 | + TARGET_OS := OSX |
| 65 | + DIST_SUFFIX := osx |
| 66 | + CC=clang |
| 67 | + CXX=clang++ |
| 68 | + TARGET_CFLAGS = -std=gnu99 -Os -Wall -Itclap -Ifatfs -I. -D$(TARGET_OS) -DVERSION=\"$(VERSION)\" -D__NO_INLINE__ -mmacosx-version-min=10.7 -arch x86_64 $(IDF_INCLUDES) |
| 69 | + TARGET_CXXFLAGS = -std=gnu++11 -Os -Wall -Itclap -Ifatfs -I. -D$(TARGET_OS) -DVERSION=\"$(VERSION)\" -D__NO_INLINE__ -mmacosx-version-min=10.7 -arch x86_64 -stdlib=libc++ $(IDF_INCLUDES) |
| 70 | + TARGET_LDFLAGS = -arch x86_64 -stdlib=libc++ |
| 71 | + endif |
| 72 | + ARCHIVE_CMD := tar czf |
| 73 | + ARCHIVE_EXTENSION := tar.gz |
| 74 | + TARGET := mkfatfs |
| 75 | +endif |
| 76 | + |
| 77 | +OBJ := main.o \ |
| 78 | + fatfs/fatfs.o \ |
| 79 | + fatfs/ccsbcs.o \ |
| 80 | + fatfs/crc.o \ |
| 81 | + fatfs/FatPartition.o \ |
| 82 | + $(IDF_MODIFIED_DIR)/fatfs/src/ff.o \ |
| 83 | + $(IDF_MODIFIED_DIR)/fatfs/src/vfs_fat.o \ |
| 84 | + $(IDF_MODIFIED_DIR)/freertos/include/freertos/semphr.o \ |
| 85 | + $(IDF_MODIFIED_DIR)/newlib/include/sys/lock.o \ |
| 86 | + $(IDF_MODIFIED_DIR)/newlib/include/sys/idf_reent.o \ |
| 87 | + $(IDF_MODIFIED_DIR)/newlib/include/sys/errno.o \ |
| 88 | + $(IDF_MODIFIED_DIR)/spi_flash/partition.o \ |
| 89 | + $(IDF_MODIFIED_DIR)/vfs/vfs.o \ |
| 90 | + $(IDF_MODIFIED_DIR)/wear_levelling/wear_levelling.o \ |
| 91 | + $(IDF_ORIG_DIR)/fatfs/src/diskio.o \ |
| 92 | + $(IDF_ORIG_DIR)/fatfs/src/diskio_spiflash.o \ |
| 93 | + $(IDF_ORIG_DIR)/fatfs/src/option/syscall.o \ |
| 94 | + $(IDF_ORIG_DIR)/wear_levelling/crc32.o \ |
| 95 | + $(IDF_ORIG_DIR)/wear_levelling/WL_Flash.o \ |
| 96 | + $(IDF_ORIG_DIR)/wear_levelling/WL_Ext_Perf.o \ |
| 97 | + $(IDF_ORIG_DIR)/wear_levelling/WL_Ext_Safe.o \ |
| 98 | + |
| 99 | + |
| 100 | +VERSION ?= $(shell git describe --always) |
| 101 | + |
| 102 | +.PHONY: all clean |
| 103 | + |
| 104 | +all: $(TARGET) |
| 105 | + |
| 106 | +$(TARGET): |
| 107 | + @echo "Building mkfatfs ..." |
| 108 | + $(CXX) $(TARGET_CXXFLAGS) -c main.cpp -o main.o |
| 109 | + $(CC) $(TARGET_CFLAGS) -c fatfs/fatfs.c -o fatfs/fatfs.o |
| 110 | + $(CC) $(TARGET_CFLAGS) -c fatfs/ccsbcs.c -o fatfs/ccsbcs.o |
| 111 | + $(CXX) $(TARGET_CXXFLAGS) -c fatfs/crc.cpp -o fatfs/crc.o |
| 112 | + $(CXX) $(TARGET_CXXFLAGS) -c fatfs/FatPartition.cpp -o fatfs/FatPartition.o |
| 113 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/fatfs/src/ff.c -o $(IDF_MODIFIED_DIR)/fatfs/src/ff.o |
| 114 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/fatfs/src/vfs_fat.c -o $(IDF_MODIFIED_DIR)/fatfs/src/vfs_fat.o |
| 115 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/freertos/include/freertos/semphr.c -o $(IDF_MODIFIED_DIR)/freertos/include/freertos/semphr.o |
| 116 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/newlib/include/sys/lock.c -o $(IDF_MODIFIED_DIR)/newlib/include/sys/lock.o |
| 117 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/newlib/include/sys/idf_reent.c -o $(IDF_MODIFIED_DIR)/newlib/include/sys/idf_reent.o |
| 118 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/newlib/include/sys/errno.c -o $(IDF_MODIFIED_DIR)/newlib/include/sys/errno.o |
| 119 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/spi_flash/partition.c -o $(IDF_MODIFIED_DIR)/spi_flash/partition.o |
| 120 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_MODIFIED_DIR)/vfs/vfs.c -o $(IDF_MODIFIED_DIR)/vfs/vfs.o |
| 121 | + $(CXX) $(TARGET_CXXFLAGS) -c $(IDF_MODIFIED_DIR)/wear_levelling/wear_levelling.cpp -o $(IDF_MODIFIED_DIR)/wear_levelling/wear_levelling.o |
| 122 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_ORIG_DIR)/fatfs/src/diskio.c -o $(IDF_ORIG_DIR)/fatfs/src/diskio.o |
| 123 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_ORIG_DIR)/fatfs/src/diskio_spiflash.c -o $(IDF_ORIG_DIR)/fatfs/src/diskio_spiflash.o |
| 124 | + $(CC) $(TARGET_CFLAGS) -c $(IDF_ORIG_DIR)/fatfs/src/option/syscall.c -o $(IDF_ORIG_DIR)/fatfs/src/option/syscall.o |
| 125 | + $(CXX) $(TARGET_CXXFLAGS) -c $(IDF_ORIG_DIR)/wear_levelling/crc32.cpp -o $(IDF_ORIG_DIR)/wear_levelling/crc32.o |
| 126 | + $(CXX) $(TARGET_CXXFLAGS) -c $(IDF_ORIG_DIR)/wear_levelling/WL_Flash.cpp -o $(IDF_ORIG_DIR)/wear_levelling/WL_Flash.o |
| 127 | + $(CXX) $(TARGET_CXXFLAGS) -c $(IDF_ORIG_DIR)/wear_levelling/WL_Ext_Perf.cpp -o $(IDF_ORIG_DIR)/wear_levelling/WL_Ext_Perf.o |
| 128 | + $(CXX) $(TARGET_CXXFLAGS) -c $(IDF_ORIG_DIR)/wear_levelling/WL_Ext_Safe.cpp -o $(IDF_ORIG_DIR)/wear_levelling/WL_Ext_Safe.o |
| 129 | + $(CXX) $(TARGET_CFLAGS) -o $(TARGET) $(OBJ) $(TARGET_LDFLAGS) |
| 130 | + |
| 131 | + |
| 132 | + |
| 133 | +clean: |
| 134 | + @rm -f *.o |
| 135 | + @rm -f fatfs/*.o |
| 136 | + @rm -f $(IDF_MODIFIED_DIR)/fatfs/src/*.o |
| 137 | + @rm -f $(IDF_MODIFIED_DIR)/freertos/include/freertos/*.o |
| 138 | + @rm -f $(IDF_MODIFIED_DIR)/newlib/include/sys/*.o |
| 139 | + @rm -f $(IDF_MODIFIED_DIR)/spi_flash/*.o |
| 140 | + @rm -f $(IDF_MODIFIED_DIR)/vfs/*.o |
| 141 | + @rm -f $(IDF_MODIFIED_DIR)/wear_levelling/*.o |
| 142 | + @rm -f $(IDF_ORIG_DIR)/fatfs/src/*.o |
| 143 | + @rm -f $(IDF_ORIG_DIR)/fatfs/src/option/*.o |
| 144 | + @rm -f $(IDF_ORIG_DIR)/wear_levelling/*.o |
| 145 | + @rm -f $(TARGET) |
0 commit comments