8125659259261b17779cd8729b9164075ddd19a1
[lwext4.git] / Makefile
1
2 #Release
3 #Debug
4 BUILD_TYPE = Release
5
6 ifneq ($(shell test -d .git), 0)
7 GIT_SHORT_HASH:= $(shell git rev-parse --short HEAD)
8 endif
9
10 VERSION_MAJOR = 1
11 VERSION_MINOR = 0
12 VERSION_PATCH = 0
13
14 VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)-$(GIT_SHORT_HASH)
15
16 COMMON_DEFINITIONS =                                      \
17         -DCMAKE_BUILD_TYPE=$(BUILD_TYPE)                      \
18         -DVERSION_MAJOR=$(VERSION_MAJOR)                      \
19         -DVERSION_MINOR=$(VERSION_MINOR)                      \
20         -DVERSION_PATCH=$(VERSION_PATCH)                      \
21         -DVERSION=$(VERSION)                                  \
22
23 define generate_common
24         rm -R -f build_$(1)
25         mkdir build_$(1)
26         cd build_$(1) && cmake -G"Unix Makefiles"           \
27         $(COMMON_DEFINITIONS)                               \
28         -DLWEXT4_BUILD_SHARED_LIB=ON                        \
29         $(2)                                                \
30         -DCMAKE_TOOLCHAIN_FILE=../toolchain/$(1).cmake ..
31 endef
32
33 define generate_common_static
34         rm -R -f build_$(1)
35         mkdir build_$(1)
36         cd build_$(1) && cmake -G"Unix Makefiles"           \
37         $(COMMON_DEFINITIONS)                               \
38         -DLWEXT4_BUILD_SHARED_LIB=OFF                       \
39         $(2)                                                \
40         -DCMAKE_TOOLCHAIN_FILE=../toolchain/$(1).cmake ..
41 endef
42
43 generic:
44         $(call generate_common_static,$@)
45
46 osx:
47         $(call generate_common,$@)
48
49 osx32:
50         $(call generate_common,$@,-DCMAKE_OSX_ARCHITECTURES=i386)
51
52 cortex-m0:
53         $(call generate_common,$@)
54
55 cortex-m0+:
56         $(call generate_common,$@)
57
58 cortex-m3:
59         $(call generate_common,$@)
60
61 cortex-m4:
62         $(call generate_common,$@)
63
64 cortex-m4f:
65         $(call generate_common,$@)
66
67 cortex-m7:
68         $(call generate_common,$@)
69
70 arm-sim:
71         $(call generate_common,$@)
72
73 avrxmega7:
74         $(call generate_common,$@)
75
76 msp430:
77         $(call generate_common,$@)
78
79 mingw:
80         $(call generate_common,$@,-DWIN32=1)
81
82 mingw-32:
83         $(call generate_common,$@,-DWIN32=1)
84
85 lib_only:
86         rm -R -f build_lib_only
87         mkdir build_lib_only
88         cd build_lib_only && cmake $(COMMON_DEFINITIONS) -DLIB_ONLY=TRUE ..
89
90 all:
91         generic
92
93 clean:
94         rm -R -f build_*
95         rm -R -f ext_images
96
97
98 include fs_test.mk