5 UNAME_S
:=$(shell uname
-s
)
6 UNAME_M
:=$(shell uname
-m
)
17 CFLAGS
=-Wshadow
-Wall
-std
=gnu99
-I.
-DLSMASH_DEMUXER_ENABLED
18 #CFLAGS+=-Wsign-conversion
29 ifneq ($(findstring i686
, $(UNAME_M
)),)
30 CFLAGS
+=-march
=i686
-mfpmath
=sse
-msse
33 ifneq ($(findstring MINGW
, $(UNAME_S
)),)
34 LDFLAGS
+=-Wl
,--large-address-aware
37 ifneq ($(findstring CYGWIN
, $(UNAME_S
)),)
38 LDFLAGS
+=-Wl
,--large-address-aware
41 else #ifeq ($(CROSS),)
42 ifeq ($(TARGET_OS
),mingw32
)
45 endif #ifeq ($(CROSS),)
47 SRCS
=isom.c utils.c mp4sys.c mp4a.c importer.c summary.c
print.c read.c timeline.c
51 TARGET_LIB
=liblsmash.a
53 SRC_AUDIOMUXER
=audiomuxer.c
54 OBJ_AUDIOMUXER
=$(SRC_AUDIOMUXER
:%.c
=%.o
)
55 TARGET_AUDIOMUXER
=$(SRC_AUDIOMUXER
:%.c
=%$(EXE
))
57 SRC_BOXDUMPER
=boxdumper.c
58 OBJ_BOXDUMPER
=$(SRC_BOXDUMPER
:%.c
=%.o
)
59 TARGET_BOXDUMPER
=$(SRC_BOXDUMPER
:%.c
=%$(EXE
))
62 OBJ_REMUXER
=$(SRC_REMUXER
:%.c
=%.o
)
63 TARGET_REMUXER
=$(SRC_REMUXER
:%.c
=%$(EXE
))
65 SRC_TIMELINEEDITOR
=timelineeditor.c
66 OBJ_TIMELINEEDITOR
=$(SRC_TIMELINEEDITOR
:%.c
=%.o
)
67 TARGET_TIMELINEEDITOR
=$(SRC_TIMELINEEDITOR
:%.c
=%$(EXE
))
69 SRCS_ALL
=$(SRCS
) $(SRC_AUDIOMUXER
) $(SRC_BOXDUMPER
) $(SRC_REMUXER
) $(SRC_TIMELINEEDITOR
)
70 OBJS_ALL
=$(SRCS_ALL
:%.c
=%.o
)
74 # should have distclean, install, uninstall in the future
75 .PHONY
: all lib tools audiomuxer boxdumper remuxer timelineeditor dep depend
clean info
80 @echo
"CFLAGS : $(CFLAGS)"
81 @echo
"LDFLAGS: $(LDFLAGS)"
85 tools
: $(TARGET_AUDIOMUXER
) $(TARGET_BOXDUMPER
) $(TARGET_REMUXER
) $(TARGET_TIMELINEEDITOR
)
87 audiomuxer
: $(TARGET_AUDIOMUXER
)
89 boxdumper
: $(TARGET_BOXDUMPER
)
91 remuxer
: $(TARGET_REMUXER
)
93 timelineeditor
: $(TARGET_TIMELINEEDITOR
)
95 $(TARGET_LIB
): .depend
$(OBJS
)
101 $(TARGET_AUDIOMUXER
): $(OBJ_AUDIOMUXER
) $(TARGET_LIB
)
103 @
$(CC
) $(CFLAGS
) $(LDFLAGS
) -o
$@
$+ $(EXTRALIBS
)
109 $(TARGET_BOXDUMPER
): $(OBJ_BOXDUMPER
) $(TARGET_LIB
)
111 @
$(ECHO
) "$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ $(EXTRALIBS)"
112 @
$(CC
) $(CFLAGS
) $(LDFLAGS
) -o
$@
$+ $(EXTRALIBS
)
118 $(TARGET_REMUXER
): $(OBJ_REMUXER
) $(TARGET_LIB
)
120 @
$(CC
) $(CFLAGS
) $(LDFLAGS
) -o
$@
$+ $(EXTRALIBS
)
126 $(TARGET_TIMELINEEDITOR
): $(OBJ_TIMELINEEDITOR
) $(TARGET_LIB
)
128 @
$(CC
) $(CFLAGS
) $(LDFLAGS
) -o
$@
$+ $(EXTRALIBS
)
137 @
$(CC
) -c
$(CFLAGS
) -o
$@
$<
139 #### dependency relative ####
142 ifneq ($(wildcard .depend
),)
146 # when we have configure script, use ".depend: config.mak"
149 @
$(foreach SRC
, $(SRCS_ALL
), $(CC
) $(CFLAGS
) $(SRC
) -g0
-MT
$(SRC
:%.c
=%.o
) -MM
>> .depend
;)
151 # automagically create dependency of tools, but old style "make depend" is required
152 # @$(foreach TOOL, $(SRCS_TOOLS), $(ECHO) -e '$(TOOL:%.c=%$(EXE)): $(TOOL:%.c=%.o) $(TARGET_LIB)\n\t$(CC) $(LDFLAGS) -o $$@ $$+ $(EXTRALIBS)' >> .depend;)
154 #### clean stuff ####
156 rm -f
$(OBJS_ALL
) $(TARGET_LIB
) $(TARGET_AUDIOMUXER
) $(TARGET_BOXDUMPER
) $(TARGET_REMUXER
) $(TARGET_TIMELINEEDITOR
) .depend