@@ -150,30 +150,44 @@ FUSE_LDFLAGS := $(shell $(PKG_CONFIG) fuse --libs)
150
150
$(TARGET ) : sparsebundlefs.o
151
151
$(CXX ) $< -o $@ $(LDFLAGS ) $(ARCH_FLAGS ) $(FUSE_LDFLAGS )
152
152
153
+ HFSFUSE_DIR := $(SRC_DIR ) /src/3rdparty/hfsfuse
154
+ HFSFUSE_DEPS := $(shell find $(HFSFUSE_DIR ) )
155
+ export HFSFUSE_DIR
156
+
157
+ hfsfuse : $(HFSFUSE_DEPS )
158
+ $(if $(wildcard $(HFSFUSE_DIR ) /.git) ,,$(error Please init and update git submodules) )
159
+ $(call ensure_binary,git)
160
+ @printf " Building hfsfuse... "
161
+ @tmpdir=$$(mktemp -d ) ; GIT_DIR=$(HFSFUSE_DIR ) /.git GIT_WORK_TREE=$$ tmpdir git checkout . \
162
+ && make -C $$ tmpdir CFLAGS=" $( ARCH_FLAGS) -D_FILE_OFFSET_BITS=64" LDFLAGS=$(ARCH_FLAGS ) > /dev/null 2>&1 \
163
+ && cp $$ tmpdir/hfsfuse $(CURDIR ) && cp $$ tmpdir/hfsdump $(CURDIR ) \
164
+ && printf " OK\n" && rm -Rf $$ tmpdir
165
+
153
166
TESTS_DIR =$(SRC_DIR ) /tests
154
167
TESTDATA_DIR := $(TESTS_DIR ) /data
155
- TEST_BUNDLE := $(TESTDATA_DIR ) /test.sparsebundle
156
- export TEST_BUNDLE
168
+ $(TESTDATA_DIR ) :
169
+ @mkdir $( TESTDATA_DIR )
157
170
158
- ifneq ($(filter testdata,$(ACTUAL_GOALS ) ) ,)
159
- .PHONY :: testdata
160
- endif
171
+ TEST_BUNDLE := $(TESTDATA_DIR ) /basic.sparsebundle
172
+ export TEST_BUNDLE
161
173
162
- vpath $(TESTDATA_DIR ) $(SRC_DIR )
163
- $(TESTDATA_DIR ) :
174
+ $(TEST_BUNDLE ) : $(TESTDATA_DIR ) $(HFSFUSE_DEPS )
164
175
$(call ensure_binary,hdiutil)
165
- @rm -Rf $(TESTDATA_DIR ) && mkdir $(TESTDATA_DIR )
166
- hdiutil create -size 1TB -type SPARSEBUNDLE -layout NONE -fs HFS+ $(TEST_BUNDLE )
176
+ @test ! -e $@ || rm -Rf $@
177
+ @printf " Creating testdata..." \
178
+ && hdiutil create -size 1TB -format SPARSEBUNDLE -layout NONE \
179
+ -fs HFS+ -srcfolder $(HFSFUSE_DIR ) $@
167
180
168
181
check_% : check ; @:
169
- check : $(TARGET ) $(TESTDATA_DIR )
182
+ check : $(TARGET ) $(TEST_BUNDLE ) hfsfuse
170
183
@echo " ============== $( PLATFORMS) =============="
171
184
@PATH=" $( CURDIR) :$( PATH) " $(SRC_DIR ) /tests/testrunner.sh $(TESTS_DIR ) /* .tst \
172
185
$(subst check_,test_,$(filter check_% ,$(ACTUAL_GOALS ) ) )
173
186
174
187
clean :
175
188
rm -f $(TARGET )
176
189
rm -Rf $(TARGET ) .dSYM
190
+ rm -f hfsfuse hfsdump
177
191
rm -f * .o
178
192
179
193
distclean : clean
0 commit comments