Files
findcrcs/Makefile

124 lines
4.9 KiB
Makefile

BINARY := findcrcs
DISTNAME := $(shell pwd | awk -F '/' '{print $$(NF)}')
BINPREFIX :=
EXEFLAGS :=
CLEAN :=
ifeq ($(OS), Windows_NT)
CLEAN := $(BINARY)
BINARY := $(BINARY).exe
EXEFLAGS := -static
ifeq ($(64), 1)
BINPREFIX := x86_64-w64-mingw32-
endif
endif
all:
ifeq ($(OS), Windows_NT)
@(objdump -a $(BINARY) 2> /dev/null | grep "pei-i386" > /dev/null || ${MAKE} --no-print-directory clean; exit 0)
endif
@${MAKE} --no-print-directory $(BINARY)
64:
ifeq ($(OS), Windows_NT)
@(objdump -a $(BINARY) 2> /dev/null | grep "pei-i386" > /dev/null && ${MAKE} --no-print-directory clean; exit 0)
@${MAKE} --no-print-directory $(BINARY) 64=1
else
@${MAKE} --no-print-directory $(BINARY)
endif
clean:
rm -rf $(BINARY) $(CLEAN) crcutil.a *.o *.exe test.bin d1aa92b05d1f2638f423661ae4735446.bin
mrproper:
@${MAKE} --no-print-directory clean
rm -rf test.bin *.tar.gz *.zip $(DISTNAME)-bin-win32 $(DISTNAME)-bin-win64
dist:
${MAKE} mrproper
(cd ..; tar -cz --numeric-owner -f $(DISTNAME).tar.gz $(DISTNAME))
mv ../$(DISTNAME).tar.gz .
ifeq ($(OS), Windows_NT)
mkdir $(DISTNAME)-bin-win32
${MAKE} all
cp $(BINARY) $(DISTNAME)-bin-win32
cp README $(DISTNAME)-bin-win32/README.txt
cp COPYING $(DISTNAME)-bin-win32/COPYING.txt
unix2dos $(DISTNAME)-bin-win32/README.txt
unix2dos $(DISTNAME)-bin-win32/COPYING.txt
zip -r $(DISTNAME)-bin-win32.zip $(DISTNAME)-bin-win32
rm -rf $(DISTNAME)-bin-win32
${MAKE} clean
mkdir $(DISTNAME)-bin-win64
${MAKE} all 64=1
cp $(BINARY) $(DISTNAME)-bin-win64
cp README $(DISTNAME)-bin-win64/README.txt
cp COPYING $(DISTNAME)-bin-win64/COPYING.txt
unix2dos $(DISTNAME)-bin-win64/README.txt
unix2dos $(DISTNAME)-bin-win64/COPYING.txt
zip -r $(DISTNAME)-bin-win64.zip $(DISTNAME)-bin-win64
rm -rf $(DISTNAME)-bin-win64
${MAKE} clean
endif
test: $(BINARY) test.bin
@echo ""
@echo "return should be: 100000000 13fbda0d d1aa92b05d1f2638f423661ae4735446"
@echo "time ./$(BINARY) test.bin 1000000 13fbda0d"
@echo ""
@sh -c "time ./$(BINARY) test.bin 1000000 13fbda0d"
$(BINARY): findcrcs.cc md5.c md5.h crcutil-1.0 crcutil.a
$(BINPREFIX)g++ -O3 -D_FILE_OFFSET_BITS=64 -Wall -o $@ $(EXEFLAGS) $(CXXFLAGS) $(LDFLAGS) findcrcs.cc md5.c crcutil.a -Icrcutil-1.0/code -Icrcutil-1.0/examples
$(BINPREFIX)strip -s $@
crcutil.a: crcutil-1.0
rm -rf *.o
$(BINPREFIX)g++ -O3 -Wall -msse4.2 $(CXXFLAGS) -c crcutil-1.0/examples/interface.cc crcutil-1.0/code/*.cc -Icrcutil-1.0/code -Icrcutil-1.0/tests -Icrcutil-1.0/examples
$(BINPREFIX)ar r crcutil.a *.o
rm -rf *.o
crcutil-1.0:
wget -q -O - http://crcutil.googlecode.com/files/crcutil-1.0.tar.gz | tar xfz -
chmod -R og-w+rX crcutil-1.0
chown -R 0.0 crcutil-1.0
touch crcutil-1.0
test.bin:
@echo "creating test.bin"
@(echo -en \
"\x1f\x8b\x08\x00\x6d\xe2\x4a\x51\x02\x03\x93\xef\xe6\x60\xc8\x7d"\
"\xe4\x15\xc8\xc4\xfc\xf6\xee\x5e\xaf\xd9\x81\x32\xc7\x3f\x4e\x16"\
"\x3f\xe1\xcc\xb5\x4f\x64\x4e\xd2\x5b\xe6\xbc\xb8\x86\x1d\x1c\x85"\
"\x85\x2f\xa6\x34\xbd\xd5\x6a\x0c\xd2\x50\xda\x61\x2d\x21\xba\x5b"\
"\x44\x71\xfa\x03\x8d\xd8\x24\xf6\x74\x4f\xb5\xfc\x05\x3f\x8c\x3c"\
"\x4f\x86\xdd\x3e\xe8\xa8\xe5\x31\xef\xd3\x9c\xec\x17\x45\x2f\x9e"\
"\x1b\xcf\xfd\x69\xfd\xff\xc7\xfc\xeb\xf1\x9b\x36\xfc\x7d\x7c\xf6"\
"\x76\xd6\xdb\xba\x88\x95\x2d\x02\x55\x7f\x4f\x3e\x28\xbf\xc6\xc3"\
"\x00\x01\x0e\x8f\xaa\xcc\xdb\xb7\x16\xf1\x08\x7c\x7a\x94\xb5\xf7"\
"\x33\x1f\x54\xd4\x23\xb6\xbc\x6a\x95\x9c\x3b\xe3\xf9\xd9\x6b\x4d"\
"\x2d\xa1\x62\x0a\x95\xee\xab\xb5\x8d\x3f\x3a\x1d\x38\x7c\xaf\x2c"\
"\x16\xae\xf0\xde\x9d\xc7\xb1\xd6\x79\x8c\x7a\xdd\x9f\x6f\xf2\xda"\
"\xc2\x55\x5e\x6f\xdf\xea\xb5\x93\xf5\x44\xf7\xea\xaf\x7d\x32\x50"\
"\xc1\x09\x7b\xde\x7d\x09\xd9\x7b\x87\xe9\xcb\x3c\xf3\xe8\xec\x22"\
"\x98\xed\x9f\xfa\xc2\xc2\xd3\x1e\xa9\x33\xf2\x57\xdf\x2e\x45\x58"\
"\x54\xdc\x5f\xfe\x76\x07\xeb\x0e\x9d\x73\xe9\xe6\x5f\xa0\x82\x0d"\
"\x4f\x62\xe5\xaf\x69\x3d\x15\x53\xd0\x5f\x77\xcd\x1a\xa1\x7d\xd7"\
"\xe5\xe0\xaf\x45\xdc\x17\xaa\xef\xe5\xac\x3d\xc9\x08\x15\x3d\x69"\
"\x1d\x15\x7b\xf2\xf4\x66\x86\xc4\x98\x9a\x5f\x35\x52\x10\xb1\x07"\
"\xf3\x7f\x5f\xbe\xc8\x70\xa9\xfc\x7b\x5c\xf3\x92\x2f\xfb\x4c\xa5"\
"\xae\x7e\xba\x38\x8f\xa7\xcf\x7f\x1f\x13\x54\xcf\x4a\x69\xdd\x33"\
"\xe9\x85\xa2\x1f\x4a\x36\xd6\x28\xb0\x43\xc5\x54\xd6\xef\xdc\x3d"\
"\xf9\xb8\xee\x81\x1d\x3b\xce\x3e\x81\xbb\x42\xf7\x2e\xff\xf7\xc7"\
"\x62\x0b\xe2\x73\x74\xe7\xbd\x42\x58\x98\x6d\xb2\xea\xa9\xd8\x02"\
"\x5b\x49\x99\xf9\x27\xe0\x82\x20\x13\x3f\x1a\x1c\xb8\x7c\xf4\x53"\
"\x23\x22\x0c\x9e\xbd\xf3\x93\xdb\xce\xf0\xf8\x91\xd9\x64\x66\xa8"\
"\xd8\xa4\xed\x25\xf6\x77\xfa\xa3\x1b\xea\x36\x6e\xad\x58\x05\xb7"\
"\xfa\xfd\x9a\x8b\x2b\xa6\x45\x37\x7c\x4b\x29\xa8\x51\x82\x0b\xe6"\
"\x6f\x31\x98\x7f\xf4\x30\x83\xbf\xf8\x69\x76\x44\x08\xcc\xda\x6d"\
"\x5d\x79\x87\xa9\xa7\xfb\xb6\x0f\x22\x4e\x2e\xad\x4f\x5c\x2a\xe4"\
"\xf4\xe2\x6b\xb7\xe3\xeb\x54\xb0\xd0\x0f\xf9\x9a\x35\x75\xf5\x5f"\
"\x1f\xaa\xf5\xd4\xed\xfb\xc1\xad\xb6\xcd\x69\xb2\xcf\x37\x26\x06"\
"\x00\x14\x69\xf9\x95\x72\x02\x00\x00"\
) | zcat | zcat | zcat > test.bin