autohell to CMake
6 files changed +138 −1626
- − Makefile
- − configure
- − librhash/Makefile
- + CMakeLists.txt
- + librhash/CMakeLists.txt
- + librhash/librhash.pc.in
| 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt |
| 2 | new file mode 100644 |
| 3 | index 0000000..1ff4d25 |
| 4 | --- /dev/null |
| 5 | +++ b/CMakeLists.txt |
| 6 | @@ -0,0 +1,54 @@ |
| 7 | +cmake_minimum_required(VERSION 3.10) |
| 8 | +project(rhash LANGUAGES C) |
| 9 | + |
| 10 | +include(GNUInstallDirs) |
| 11 | + |
| 12 | +# extract version from version.h |
| 13 | +file(READ "${CMAKE_CURRENT_SOURCE_DIR}/version.h" rhash_version_header) |
| 14 | +string(REGEX MATCH "#define VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\"" _ "${rhash_version_header}") |
| 15 | +set(RHASH_VERSION_MAJOR ${CMAKE_MATCH_1}) |
| 16 | +set(RHASH_VERSION_MINOR ${CMAKE_MATCH_2}) |
| 17 | +set(RHASH_VERSION_PATCH ${CMAKE_MATCH_3}) |
| 18 | +set(RHASH_VERSION "${RHASH_VERSION_MAJOR}.${RHASH_VERSION_MINOR}.${RHASH_VERSION_PATCH}") |
| 19 | + |
| 20 | +option(USE_GETTEXT "Enable gettext (localization) support" OFF) |
| 21 | + |
| 22 | +add_subdirectory(librhash) |
| 23 | + |
| 24 | +add_executable(rhash |
| 25 | + calc_sums.c |
| 26 | + common_func.c |
| 27 | + file.c |
| 28 | + file_mask.c |
| 29 | + file_set.c |
| 30 | + find_file.c |
| 31 | + hash_check.c |
| 32 | + hash_print.c |
| 33 | + hash_update.c |
| 34 | + output.c |
| 35 | + parse_cmdline.c |
| 36 | + rhash_main.c |
| 37 | + win_utils.c) |
| 38 | +target_link_libraries(rhash PRIVATE librhash) |
| 39 | + |
| 40 | +if(USE_GETTEXT) |
| 41 | + find_package(Intl REQUIRED) |
| 42 | + target_link_libraries(rhash PRIVATE ${Intl_LIBRARIES}) |
| 43 | + target_include_directories(rhash PRIVATE ${Intl_INCLUDE_DIRS}) |
| 44 | + target_compile_definitions(rhash PRIVATE USE_GETTEXT) |
| 45 | +endif() |
| 46 | + |
| 47 | +install(TARGETS rhash RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 48 | + |
| 49 | +# rhash picks its default hash/format from argv[0], so installing it under |
| 50 | +# these names turns it into the matching tool (sfv-hash, magnet-link, etc.) |
| 51 | +option(INSTALL_SYMLINKS "Install alias symlinks for the rhash executable" ON) |
| 52 | +if(INSTALL_SYMLINKS) |
| 53 | + set(RHASH_SYMLINKS sfv-hash has160-hash gost12-256-hash gost12-512-hash |
| 54 | + edonr256-hash edonr512-hash tiger-hash tth-hash whirlpool-hash |
| 55 | + ed2k-link magnet-link) |
| 56 | + foreach(link IN LISTS RHASH_SYMLINKS) |
| 57 | + install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \ |
| 58 | +rhash \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/${link}\")") |
| 59 | + endforeach() |
| 60 | +endif() |
| 61 | diff --git a/Makefile b/Makefile |
| 62 | deleted file mode 100644 |
| 63 | index 0733ed9..0000000 |
| 64 | --- a/Makefile |
| 65 | +++ /dev/null |
| 66 | @@ -1,334 +0,0 @@ |
| 67 | - |
| 68 | -include config.mak |
| 69 | - |
| 70 | -HEADERS = calc_sums.h hash_print.h common_func.h hash_update.h file.h file_mask.h file_set.h find_file.h hash_check.h output.h parse_cmdline.h rhash_main.h win_utils.h platform.h version.h |
| 71 | -SOURCES = calc_sums.c hash_print.c common_func.c hash_update.c file.c file_mask.c file_set.c find_file.c hash_check.c output.c parse_cmdline.c rhash_main.c win_utils.c |
| 72 | -OBJECTS = $(SOURCES:.c=.o) |
| 73 | -WIN_DIST_FILES = dist/MD5.bat dist/magnet.bat dist/rhashrc.sample |
| 74 | -OTHER_FILES = configure Makefile ChangeLog INSTALL.md COPYING README.md \ |
| 75 | - build/vc-2010/rhash.vcxproj dist/rhash.spec.in dist/rhash.1.in dist/rhash.1.win.sed \ |
| 76 | - docs/CONTRIBUTING.md docs/LIBRHASH.md librhash/Doxyfile po/rhash.pot \ |
| 77 | - tests/test_rhash.sh tests/test1K.data |
| 78 | -LIBRHASH_FILES = librhash/algorithms.c librhash/algorithms.h \ |
| 79 | - librhash/byte_order.c librhash/byte_order.h librhash/plug_openssl.c librhash/plug_openssl.h \ |
| 80 | - librhash/rhash.c librhash/rhash.h librhash/rhash_torrent.c librhash/rhash_torrent.h \ |
| 81 | - librhash/aich.c librhash/aich.h librhash/blake2b.c librhash/blake2b.h \ |
| 82 | - librhash/blake2s.c librhash/blake2s.h librhash/blake3.c librhash/blake3.h \ |
| 83 | - librhash/crc32.c librhash/crc32.h \ |
| 84 | - librhash/ed2k.c librhash/ed2k.h librhash/edonr.c librhash/edonr.h \ |
| 85 | - librhash/gost12.c librhash/gost12.h librhash/gost94.c librhash/gost94.h \ |
| 86 | - librhash/has160.c librhash/has160.h librhash/hex.c librhash/hex.h librhash/md4.c \ |
| 87 | - librhash/md4.h librhash/md5.c librhash/md5.h librhash/ripemd-160.c librhash/ripemd-160.h \ |
| 88 | - librhash/sha1.c librhash/sha1.h librhash/sha3.c librhash/sha3.h \ |
| 89 | - librhash/sha256.c librhash/sha256.h librhash/sha512.c librhash/sha512.h \ |
| 90 | - librhash/sha_ni.c librhash/sha_ni.h librhash/snefru.c librhash/snefru.h \ |
| 91 | - librhash/tiger.c librhash/tiger.h librhash/tiger_sbox.c \ |
| 92 | - librhash/torrent.h librhash/torrent.c librhash/tth.c librhash/tth.h \ |
| 93 | - librhash/whirlpool.c librhash/whirlpool.h librhash/whirlpool_sbox.c \ |
| 94 | - librhash/test_lib.c librhash/test_lib.h librhash/test_utils.c librhash/test_utils.h \ |
| 95 | - librhash/ustd.h librhash/util.c librhash/util.h librhash/Makefile |
| 96 | -I18N_FILES = po/ca.po po/de.po po/en_AU.po po/es.po po/fr.po po/gl.po po/it.po po/pt_BR.po po/ro.po po/ru.po po/uk.po |
| 97 | -ALL_FILES = $(SOURCES) $(HEADERS) $(LIBRHASH_FILES) $(OTHER_FILES) $(WIN_DIST_FILES) $(I18N_FILES) |
| 98 | -SPECFILE = dist/rhash.spec |
| 99 | -LIBRHASH_PC = dist/librhash.pc |
| 100 | -RPMTOP = rpms |
| 101 | -RPMDIRS = SOURCES SPECS BUILD SRPMS RPMS |
| 102 | -RHASH_NAME = rhash |
| 103 | -RHASH_BINARY = rhash$(EXEC_EXT) |
| 104 | -INSTALL_PROGRAM = $(INSTALL) -m 755 |
| 105 | -INSTALL_DATA = $(INSTALL) -m 644 |
| 106 | - |
| 107 | -all: $(BUILD_TARGETS) |
| 108 | -build: $(RHASH_BINARY) |
| 109 | -lib-shared: $(LIBRHASH_SHARED) |
| 110 | -lib-static: $(LIBRHASH_STATIC) |
| 111 | -install: build-install-binary install-data install-symlinks $(EXTRA_INSTALL) |
| 112 | -install-data: install-man install-conf |
| 113 | -uninstall: uninstall-binary uninstall-data uninstall-symlinks uninstall-lib uninstall-gmo uninstall-pkg-config |
| 114 | - |
| 115 | -config.mak: |
| 116 | - echo "Run the ./configure script first" && false |
| 117 | - |
| 118 | -# creating archives |
| 119 | -WIN_SUFFIX = win32 |
| 120 | -PACKAGE_NAME = $(RHASH_NAME)-$(VERSION) |
| 121 | -ARCHIVE_TARGZ = $(PACKAGE_NAME)-src.tar.gz |
| 122 | -ARCHIVE_TARGZ_CORE = $(RHASH_NAME)-core-$(VERSION)-src.tar.gz |
| 123 | -ARCHIVE_TARGZ_BINDINGS = $(RHASH_NAME)-bindings-$(VERSION)-src.tar.gz |
| 124 | -ARCHIVE_TARGZ_DEB = $(RHASH_NAME)_$(VERSION).orig.tar.gz |
| 125 | -ARCHIVE_XZ = $(PACKAGE_NAME)-src.tar.xz |
| 126 | -ARCHIVE_ZIP = $(PACKAGE_NAME)-$(WIN_SUFFIX).zip |
| 127 | -WIN_ZIP_DIR = RHash-$(VERSION)-$(WIN_SUFFIX) |
| 128 | -dist: tgz |
| 129 | -win-dist: zip |
| 130 | -zip: $(ARCHIVE_ZIP) |
| 131 | -dgz: check $(ARCHIVE_TARGZ_DEB) |
| 132 | - |
| 133 | -build-install-binary: $(BUILD_TARGETS) |
| 134 | - +$(MAKE) install-binary |
| 135 | - |
| 136 | -mkdir-bin: |
| 137 | - $(INSTALL) -d $(BINDIR) |
| 138 | - |
| 139 | -# install binary without (re-)compilation |
| 140 | -install-binary: mkdir-bin |
| 141 | - $(INSTALL_PROGRAM) $(RHASH_BINARY) $(BINDIR)/$(RHASH_BINARY) |
| 142 | - |
| 143 | -install-man: |
| 144 | - $(INSTALL) -d $(MANDIR)/man1 |
| 145 | - $(INSTALL_DATA) dist/rhash.1 $(MANDIR)/man1/rhash.1 |
| 146 | - |
| 147 | -install-conf: |
| 148 | - $(INSTALL) -d $(SYSCONFDIR) |
| 149 | - tr -d \\r < dist/rhashrc.sample > rc.tmp && $(INSTALL_DATA) rc.tmp $(SYSCONFDIR)/rhashrc |
| 150 | - rm -f rc.tmp |
| 151 | - |
| 152 | -# dependencies should be properly set, otherwise 'make -j<n>' can fail |
| 153 | -install-symlinks: mkdir-bin install-man install-binary |
| 154 | - cd $(BINDIR) && for f in $(SYMLINKS); do $(LN_S) $(RHASH_BINARY) $$f$(EXEC_EXT); done |
| 155 | - cd $(MANDIR)/man1 && for f in $(SYMLINKS); do $(LN_S) rhash.1 $$f.1; done |
| 156 | - |
| 157 | -install-pkg-config: |
| 158 | - $(INSTALL) -d $(PKGCONFIGDIR) |
| 159 | - $(INSTALL_DATA) $(LIBRHASH_PC) $(PKGCONFIGDIR)/ |
| 160 | - |
| 161 | -uninstall-binary: |
| 162 | - rm -f $(BINDIR)/$(RHASH_BINARY) |
| 163 | - |
| 164 | -uninstall-data: |
| 165 | - rm -f $(MANDIR)/man1/rhash.1 |
| 166 | - |
| 167 | -uninstall-symlinks: |
| 168 | - for f in $(SYMLINKS); do rm -f $(BINDIR)/$$f$(EXEC_EXT) $(MANDIR)/man1/$$f.1; done |
| 169 | - |
| 170 | -uninstall-pkg-config: |
| 171 | - rm -f $(PKGCONFIGDIR)/librhash.pc |
| 172 | - |
| 173 | -uninstall-lib: |
| 174 | - +cd librhash && $(MAKE) uninstall-lib |
| 175 | - |
| 176 | -install-lib-static: $(LIBRHASH_STATIC) install-lib-headers |
| 177 | - +cd librhash && $(MAKE) install-lib-static |
| 178 | - |
| 179 | -install-lib-shared: $(LIBRHASH_SHARED) |
| 180 | - +cd librhash && $(MAKE) install-lib-shared |
| 181 | - |
| 182 | -install-lib-headers: |
| 183 | - +cd librhash && $(MAKE) install-lib-headers |
| 184 | - |
| 185 | -install-lib-so-link: |
| 186 | - +cd librhash && $(MAKE) install-so-link |
| 187 | - |
| 188 | -$(LIBRHASH_SHARED): $(LIBRHASH_FILES) |
| 189 | - +cd librhash && $(MAKE) lib-shared |
| 190 | - |
| 191 | -$(LIBRHASH_STATIC): $(LIBRHASH_FILES) |
| 192 | - +cd librhash && $(MAKE) lib-static |
| 193 | - |
| 194 | -test-lib: test-lib-$(LIBRHASH_TYPE) |
| 195 | - |
| 196 | -test-lib-static: $(LIBRHASH_STATIC) |
| 197 | - +cd librhash && $(MAKE) test-static |
| 198 | - |
| 199 | -test-lib-shared: $(LIBRHASH_SHARED) |
| 200 | - +cd librhash && $(MAKE) test-shared |
| 201 | - |
| 202 | -test-libs: $(LIBRHASH_STATIC) $(LIBRHASH_SHARED) |
| 203 | - +cd librhash && $(MAKE) test-static test-shared |
| 204 | - |
| 205 | -test-full: $(RHASH_BINARY) |
| 206 | - /bin/sh tests/test_rhash.sh $(TEST_OPTIONS) --full ./$(RHASH_BINARY) |
| 207 | - |
| 208 | -test: $(RHASH_BINARY) |
| 209 | - /bin/sh tests/test_rhash.sh $(TEST_OPTIONS) ./$(RHASH_BINARY) |
| 210 | - |
| 211 | -print-info: lib-$(LIBRHASH_TYPE) |
| 212 | - +cd librhash && $(MAKE) print-info |
| 213 | - |
| 214 | -# check that source tree is consistent |
| 215 | -check: |
| 216 | - grep -q '\* === Version $(VERSION) ===' ChangeLog |
| 217 | - grep -q '^#define VERSION "$(VERSION)"' version.h |
| 218 | - test ! -f bindings/version.properties || grep -q '^version=$(VERSION)$$' bindings/version.properties |
| 219 | - |
| 220 | -$(RHASH_BINARY): $(OBJECTS) $(LIBRHASH_PATH) |
| 221 | - $(CC) $(OBJECTS) $(LIBRHASH_PATH) $(LDFLAGS) -o $@ |
| 222 | - |
| 223 | -# NOTE: dependences were generated by 'gcc -Ilibrhash -MM *.c' |
| 224 | -# we are using plain old makefile style to support BSD make |
| 225 | -calc_sums.o: calc_sums.c calc_sums.h common_func.h file.h hash_check.h \ |
| 226 | - file_set.h hash_print.h output.h parse_cmdline.h platform.h rhash_main.h \ |
| 227 | - win_utils.h librhash/rhash.h librhash/rhash_torrent.h |
| 228 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 229 | - |
| 230 | -common_func.o: common_func.c common_func.h output.h parse_cmdline.h \ |
| 231 | - version.h win_utils.h |
| 232 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 233 | - |
| 234 | -file.o: file.c file.h common_func.h parse_cmdline.h platform.h \ |
| 235 | - win_utils.h |
| 236 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 237 | - |
| 238 | -file_mask.o: file_mask.c file_mask.h common_func.h file.h |
| 239 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 240 | - |
| 241 | -file_set.o: file_set.c file_set.h common_func.h hash_print.h output.h \ |
| 242 | - parse_cmdline.h rhash_main.h file.h librhash/rhash.h |
| 243 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 244 | - |
| 245 | -find_file.o: find_file.c find_file.h common_func.h file.h output.h \ |
| 246 | - parse_cmdline.h platform.h win_utils.h |
| 247 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 248 | - |
| 249 | -hash_check.o: hash_check.c hash_check.h file.h file_set.h calc_sums.h \ |
| 250 | - common_func.h hash_print.h output.h parse_cmdline.h rhash_main.h \ |
| 251 | - librhash/rhash.h |
| 252 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 253 | - |
| 254 | -hash_print.o: hash_print.c hash_print.h calc_sums.h common_func.h file.h \ |
| 255 | - hash_check.h file_set.h output.h parse_cmdline.h rhash_main.h \ |
| 256 | - win_utils.h librhash/rhash.h |
| 257 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 258 | - |
| 259 | -hash_update.o: hash_update.c hash_update.h calc_sums.h common_func.h \ |
| 260 | - file.h hash_check.h file_set.h file_mask.h hash_print.h output.h \ |
| 261 | - parse_cmdline.h rhash_main.h win_utils.h |
| 262 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 263 | - |
| 264 | -output.o: output.c output.h calc_sums.h common_func.h file.h hash_check.h \ |
| 265 | - file_set.h parse_cmdline.h platform.h rhash_main.h win_utils.h \ |
| 266 | - librhash/rhash.h |
| 267 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 268 | - |
| 269 | -parse_cmdline.o: parse_cmdline.c parse_cmdline.h calc_sums.h \ |
| 270 | - common_func.h file.h hash_check.h file_set.h file_mask.h find_file.h \ |
| 271 | - hash_print.h output.h rhash_main.h win_utils.h librhash/rhash.h |
| 272 | - $(CC) -c $(CFLAGS) $(CONFCFLAGS) $< -o $@ |
| 273 | - |
| 274 | -rhash_main.o: rhash_main.c rhash_main.h file.h calc_sums.h common_func.h \ |
| 275 | - hash_check.h file_set.h file_mask.h find_file.h hash_print.h \ |
| 276 | - hash_update.h output.h parse_cmdline.h win_utils.h librhash/rhash.h |
| 277 | - $(CC) -c $(CFLAGS) $(LOCALECFLAGS) $< -o $@ |
| 278 | - |
| 279 | -win_utils.o: win_utils.c win_utils.h common_func.h file.h parse_cmdline.h |
| 280 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 281 | - |
| 282 | -dist/rhash.1.win.html: dist/rhash.1 dist/rhash.1.win.sed |
| 283 | - sed -f dist/rhash.1.win.sed dist/rhash.1 | rman -fHTML -roff | \ |
| 284 | - sed -e '/<BODY/s/\(bgcolor=\)"[^"]*"/\1"white"/i' > dist/rhash.1.win.html |
| 285 | -# verify the result |
| 286 | - grep -q "utf8" dist/rhash.1.win.html |
| 287 | - grep -q "APPDATA" dist/rhash.1.win.html |
| 288 | - |
| 289 | -dist/rhash.1.html: dist/rhash.1 |
| 290 | - -rman --version 2>/dev/null && (rman -fHTML -roff dist/rhash.1 | sed -e '/<BODY/s/\(bgcolor=\)"[^"]*"/\1"white"/i' > $@) |
| 291 | - |
| 292 | -dist/rhash.1.txt: dist/rhash.1 |
| 293 | - -groff --version 2>/dev/null && (groff -t -e -mandoc -Tascii dist/rhash.1 | sed -e 's/.\[[0-9]*m//g' > $@) |
| 294 | - |
| 295 | -permissions: |
| 296 | - find . build dist docs librhash po tests -maxdepth 1 -type f -exec chmod -x '{}' \; |
| 297 | - chmod +x configure tests/test_rhash.sh |
| 298 | - |
| 299 | -copy-dist: $(ALL_FILES) permissions |
| 300 | - rm -rf $(PACKAGE_NAME) |
| 301 | - mkdir $(PACKAGE_NAME) |
| 302 | - cp -rl --parents $(ALL_FILES) $(PACKAGE_NAME)/ |
| 303 | - |
| 304 | -tgz-core: check |
| 305 | - +$(MAKE) copy-dist PACKAGE_NAME=$(PACKAGE_NAME)-core |
| 306 | - tar czf $(ARCHIVE_TARGZ_CORE) --owner=root --group=root $(PACKAGE_NAME)-core/ |
| 307 | - rm -rf $(PACKAGE_NAME)-core |
| 308 | - |
| 309 | -tgz-bindings: |
| 310 | - +cd bindings && $(MAKE) gzip ARCHIVE_GZIP=../$(ARCHIVE_TARGZ_BINDINGS) |
| 311 | - |
| 312 | -tgz: check clean-bindings |
| 313 | - +$(MAKE) copy-dist |
| 314 | - +cd bindings && $(MAKE) copy-dist COPYDIR=../$(PACKAGE_NAME)/bindings |
| 315 | - tar czf $(ARCHIVE_TARGZ) --owner=root:0 --group=root:0 $(PACKAGE_NAME)/ |
| 316 | - rm -rf $(PACKAGE_NAME) |
| 317 | - |
| 318 | -xz: check clean-bindings |
| 319 | - +$(MAKE) copy-dist |
| 320 | - +cd bindings && $(MAKE) copy-dist COPYDIR=../$(PACKAGE_NAME)/bindings |
| 321 | - tar cJf $(ARCHIVE_XZ) --owner=root:0 --group=root:0 $(PACKAGE_NAME)/ |
| 322 | - rm -rf $(PACKAGE_NAME) |
| 323 | - |
| 324 | -win-dir: $(WIN_DIST_FILES) dist/rhash.1.win.html |
| 325 | - test -s dist/rhash.1.win.html && test -x $(RHASH_BINARY) |
| 326 | - -rm -rf $(WIN_ZIP_DIR) |
| 327 | - mkdir $(WIN_ZIP_DIR) |
| 328 | - cp $(RHASH_BINARY) ChangeLog $(WIN_DIST_FILES) $(WIN_ZIP_DIR)/ |
| 329 | - cp dist/rhash.1.win.html $(WIN_ZIP_DIR)/rhash-doc.html |
| 330 | - |
| 331 | -$(ARCHIVE_ZIP): $(WIN_DIST_FILES) dist/rhash.1.win.html |
| 332 | - +$(MAKE) win-dir |
| 333 | - zip -9r $(ARCHIVE_ZIP) $(WIN_ZIP_DIR) |
| 334 | - rm -rf $(WIN_ZIP_DIR) |
| 335 | - |
| 336 | -$(ARCHIVE_TARGZ_DEB) : $(ALL_FILES) |
| 337 | - +$(MAKE) tgz |
| 338 | - mv -f $(ARCHIVE_TARGZ) $(ARCHIVE_TARGZ_DEB) |
| 339 | - |
| 340 | -# rpm packaging |
| 341 | -$(SPECFILE): $(SPECFILE).in config.mak |
| 342 | - sed -e 's/@VERSION@/$(VERSION)/' $(SPECFILE).in > $(SPECFILE) |
| 343 | - |
| 344 | -rpm: tgz |
| 345 | - -for i in $(RPMDIRS); do mkdir -p $(RPMTOP)/$$i; done |
| 346 | - cp -f $(ARCHIVE_TARGZ) $(RPMTOP)/SOURCES |
| 347 | - rpmbuild -ba --clean --define "_topdir `pwd`/$(RPMTOP)" $(SPECFILE) |
| 348 | - mv -f `find $(RPMTOP) -name "*rhash*-$(VERSION)*.rpm"` . |
| 349 | - rm -rf $(RPMTOP) |
| 350 | - |
| 351 | -clean-bindings: |
| 352 | - +cd bindings && $(MAKE) clean |
| 353 | - |
| 354 | -clean-local: |
| 355 | - rm -f *.o $(RHASH_BINARY) |
| 356 | - rm -f po/*.gmo po/*.po~ po/compile-gmo.tag |
| 357 | - |
| 358 | -distclean: clean-local |
| 359 | - rm -f config.log config.mak dist/rhash.1 $(SPECFILE) $(LIBRHASH_PC) |
| 360 | - +cd librhash && $(MAKE) distclean |
| 361 | - |
| 362 | -clean: clean-local |
| 363 | - +cd librhash && $(MAKE) clean |
| 364 | - |
| 365 | -update-po: |
| 366 | - xgettext *.c -k_ -cTRANSLATORS -o po/rhash.pot \ |
| 367 | - --msgid-bugs-address='Aleksey <rhash.admin@gmail.com>' --package-name='RHash' |
| 368 | - for f in $(I18N_FILES); do \ |
| 369 | - msgmerge -U $$f po/rhash.pot; \ |
| 370 | - done |
| 371 | - |
| 372 | -po/compile-gmo.tag: $(I18N_FILES) |
| 373 | - for f in $(I18N_FILES); do \ |
| 374 | - g=`basename $$f .po`; \ |
| 375 | - msgfmt -o po/$$g.gmo $$f; \ |
| 376 | - done |
| 377 | - touch $@ |
| 378 | - |
| 379 | -compile-gmo: po/compile-gmo.tag |
| 380 | - |
| 381 | -install-gmo: compile-gmo |
| 382 | - for f in $(I18N_FILES); do \ |
| 383 | - l=`basename $$f .po`; \ |
| 384 | - $(INSTALL) -d $(LOCALEDIR)/$$l/LC_MESSAGES; \ |
| 385 | - $(INSTALL_DATA) po/$$l.gmo $(LOCALEDIR)/$$l/LC_MESSAGES/rhash.mo; \ |
| 386 | - done |
| 387 | - |
| 388 | -uninstall-gmo: |
| 389 | - for f in $(I18N_FILES); do \ |
| 390 | - rm -f $(LOCALEDIR)/`basename $$f .po`/LC_MESSAGES/rhash.mo; \ |
| 391 | - done |
| 392 | - |
| 393 | -.PHONY: all build lib-shared lib-static clean clean-bindings distclean clean-local \ |
| 394 | - test test-shared test-static test-full test-lib test-libs test-lib-shared test-lib-static \ |
| 395 | - install build-install-binary install-binary install-lib-shared install-lib-static \ |
| 396 | - install-lib-headers install-lib-so-link install-conf install-data install-gmo install-man \ |
| 397 | - install-symlinks install-pkg-config uninstall-gmo uninstall-pkg-config \ |
| 398 | - uninstall uninstall-binary uninstall-data uninstall-lib uninstall-symlinks \ |
| 399 | - print-info check copy-dist update-po compile-gmo mkdir-bin permissions \ |
| 400 | - dgz dist tgz tgz-bindings tgz-core rpm win-dist win-dir xz zip |
| 401 | diff --git a/configure b/configure |
| 402 | deleted file mode 100755 |
| 403 | index 46072c3..0000000 |
| 404 | --- a/configure |
| 405 | +++ /dev/null |
| 406 | @@ -1,1063 +0,0 @@ |
| 407 | -#!/bin/sh |
| 408 | - |
| 409 | -##################################################################### |
| 410 | -# set default values |
| 411 | -OPT_STATIC=auto |
| 412 | -OPT_OPENSSL=auto |
| 413 | -OPT_OPENSSL_RUNTIME=auto |
| 414 | -OPT_GETTEXT=auto |
| 415 | -OPT_SHANI=auto |
| 416 | -OPT_CC= |
| 417 | - |
| 418 | -export LC_ALL=C |
| 419 | -CFG_LINE="$*" |
| 420 | -INSTALL_PREFIX="/usr/local" |
| 421 | -test -z "$CC" && CC=cc |
| 422 | -CMD_AR=ar |
| 423 | -CMD_INSTALL=install |
| 424 | -BUILD_DEBUG= |
| 425 | -BUILD_EXTRA_CFLAGS= |
| 426 | -BUILD_EXTRA_LDFLAGS= |
| 427 | -RHASH_LOCALE_CFLAGS= |
| 428 | -RHASH_DEFINES= |
| 429 | -LIBRHASH_DEFINES= |
| 430 | -CHECK_LDFLAGS= |
| 431 | -WARN_CFLAGS="-Wall -W -Wstrict-prototypes -Wnested-externs -Winline -Wpointer-arith -Wbad-function-cast -Wmissing-prototypes -Wmissing-declarations" |
| 432 | -INSTALL_SYMLINKS="sfv-hash has160-hash gost12-256-hash gost12-512-hash edonr256-hash edonr512-hash tiger-hash tth-hash whirlpool-hash ed2k-link magnet-link" |
| 433 | -INSTALL_LIB_STATIC=auto |
| 434 | -INSTALL_LIB_SHARED=auto |
| 435 | -INSTALL_PKGCONFIGDIR="$PKG_INSTALLDIR" |
| 436 | -SHARED_LIB_MODE=${SHARED_LIB_MODE:-755} |
| 437 | - |
| 438 | -##################################################################### |
| 439 | -# detect and prepare temp directory |
| 440 | -for DETECT_TMP in "$TMPDIR" "$TEMPDIR" "/tmp"; do |
| 441 | - test -d "$DETECT_TMP" && break |
| 442 | -done |
| 443 | -RANDNUM=$RANDOM |
| 444 | -test -z "$RANDNUM" && jot -r 1 2>/dev/null >dev/null && RANDNUM=$(jot -r 1 1 32767) || RANDNUM=0 |
| 445 | -BUILD_TMPDIR="$DETECT_TMP/rhash-configure-$RANDNUM-$$" |
| 446 | -mkdir $BUILD_TMPDIR || die "Unable to create tmp dir." |
| 447 | -TMPC="$BUILD_TMPDIR/tmp.c" |
| 448 | -TMPT="$BUILD_TMPDIR/tmp.txt" |
| 449 | -TMPBIN="$BUILD_TMPDIR/tmp" |
| 450 | -TMPLOG="config.log" |
| 451 | -rm -f "$TMPLOG" |
| 452 | -echo "Configuration parameters: \"$CFG_LINE\"" > "$TMPLOG" |
| 453 | -echo "Symlinks to install: $INSTALL_SYMLINKS" >> "$TMPLOG" |
| 454 | -echo >> "$TMPLOG" |
| 455 | - |
| 456 | -remove_tmpdir() |
| 457 | -{ |
| 458 | - rm -rf "$BUILD_TMPDIR" |
| 459 | -} |
| 460 | -trap remove_tmpdir EXIT |
| 461 | - |
| 462 | -##################################################################### |
| 463 | -# display error message and exit |
| 464 | -die() { |
| 465 | - echo |
| 466 | - echo "Error: $@" >&2 |
| 467 | - echo >&2 |
| 468 | - test -f "$TMPLOG" && echo "Error: $@" >> "$TMPLOG" |
| 469 | - rm -f "$TMPBIN" "$TMPC" "$TMPT" |
| 470 | - echo "Check \"$TMPLOG\" if you do not understand why it failed." |
| 471 | - exit 1 |
| 472 | -} |
| 473 | - |
| 474 | -##################################################################### |
| 475 | -# helper functions for options parsing |
| 476 | -print_help() |
| 477 | -{ |
| 478 | - cat << EOF |
| 479 | -Usage: configure [OPTIONS]... |
| 480 | - |
| 481 | -Generic Options: |
| 482 | - -h, --help display this help and exit |
| 483 | - --cc=COMPILER C compiler to build RHash [gcc] |
| 484 | - --ar=AR librarian to build RHash [ar] |
| 485 | - --target=PLATFORM target platform (i386-linux, arm-linux, etc) |
| 486 | - --with-install=PATH path to a custom install program |
| 487 | - |
| 488 | -Directory Options: |
| 489 | - --prefix=DIR prefix directory for installation [/usr/local] |
| 490 | - --exec-prefix=DIR prefix directory for binaries [PREFIX] |
| 491 | - --bindir=DIR directory for installing binaries [EXEC_PREFIX/bin] |
| 492 | - --sysconfdir=DIR directory to look for configuration file |
| 493 | - [PREFIX/etc] |
| 494 | - --mandir=DIR directory for installing man pages [PREFIX/share/man] |
| 495 | - --libdir=DIR directory for the rhash library [EXEC_PREFIX/lib] |
| 496 | - --pkgconfigdir=DIR directory for pkg-config files [LIBDIR/pkgconfig] |
| 497 | - --localedir=DIR directory for locale files [PREFIX/share/locale] |
| 498 | - |
| 499 | -Features options: |
| 500 | - --disable-FEATURE do not include FEATURE |
| 501 | - --enable-gettext enable gettext (localization) support [autodetect] |
| 502 | - --enable-openssl[=runtime] enable OpenSSL (optimized hash functions) support. |
| 503 | - If runtime specified, then load OpenSSL at runtime if |
| 504 | - the library is found [autodetect] |
| 505 | - --enable-debug enable debug information [disable] |
| 506 | - --enable-static[=librhash] statically link all libraries or (if =librhash) |
| 507 | - only the LibRHash library into RHash binary [disable] |
| 508 | - --enable-lib-static build and install LibRHash static library [auto] |
| 509 | - --enable-lib-shared build and install LibRHash shared library [auto] |
| 510 | - --enable-symlinks[=LIST] install symlinks to the binary [enable] |
| 511 | - |
| 512 | -Use these options if autodetection fails: |
| 513 | - --extra-cflags=FLAGS extra CFLAGS |
| 514 | - --extra-ldflags=FLAGS extra LDFLAGS |
| 515 | -EOF |
| 516 | -exit 0 |
| 517 | -} |
| 518 | - |
| 519 | -check_set_contains() |
| 520 | -{ |
| 521 | - VALUE="$1" |
| 522 | - shift |
| 523 | - for VALID_VALUE do |
| 524 | - if test "$VALUE" = "$VALID_VALUE"; then |
| 525 | - return 0 |
| 526 | - fi |
| 527 | - shift |
| 528 | - done |
| 529 | - return 1 |
| 530 | -} |
| 531 | - |
| 532 | -get_opt_value() |
| 533 | -{ |
| 534 | - echo $(echo $* | cut -d '=' -f 2-) |
| 535 | -} |
| 536 | - |
| 537 | -##################################################################### |
| 538 | -# parse the command line options passed to the configure script |
| 539 | -for OPT do |
| 540 | - case "$OPT" in |
| 541 | - --help|-help|-h) |
| 542 | - print_help |
| 543 | - ;; |
| 544 | - --prefix=*) |
| 545 | - INSTALL_PREFIX=$(get_opt_value $OPT) |
| 546 | - ;; |
| 547 | - --exec-prefix=*) |
| 548 | - INSTALL_EXEC_PREFIX=$(get_opt_value $OPT) |
| 549 | - INSTALL_EXEC_PREFIX_SET=yes |
| 550 | - ;; |
| 551 | - --bindir=*) |
| 552 | - INSTALL_BINDIR=$(get_opt_value $OPT) |
| 553 | - ;; |
| 554 | - --mandir=*) |
| 555 | - INSTALL_MANDIR=$(get_opt_value $OPT) |
| 556 | - ;; |
| 557 | - --sysconfdir=*) |
| 558 | - INSTALL_SYSCONFDIR=$(get_opt_value $OPT) |
| 559 | - ;; |
| 560 | - --libdir=*) |
| 561 | - INSTALL_LIBDIR=$(get_opt_value $OPT) |
| 562 | - ;; |
| 563 | - --pkgconfigdir=*) |
| 564 | - INSTALL_PKGCONFIGDIR=$(get_opt_value $OPT) |
| 565 | - ;; |
| 566 | - --localedir=*) |
| 567 | - INSTALL_LOCALEDIR=$(get_opt_value $OPT) |
| 568 | - ;; |
| 569 | - --enable-gettext) |
| 570 | - OPT_GETTEXT=yes |
| 571 | - ;; |
| 572 | - --disable-gettext) |
| 573 | - OPT_GETTEXT=no |
| 574 | - ;; |
| 575 | - --disable-shani) |
| 576 | - OPT_SHANI=no |
| 577 | - ;; |
| 578 | - --enable-openssl) |
| 579 | - OPT_OPENSSL=yes |
| 580 | - ;; |
| 581 | - --enable-openssl=*) |
| 582 | - OPT_OPENSSL=$(get_opt_value $OPT) |
| 583 | - check_set_contains "$OPT_OPENSSL" "runtime" || die "Unexpected option value: $OPT" |
| 584 | - ;; |
| 585 | - --disable-openssl) |
| 586 | - OPT_OPENSSL=no |
| 587 | - ;; |
| 588 | - --enable-openssl-runtime) |
| 589 | - OPT_OPENSSL=runtime # legacy option |
| 590 | - echo "warning: use --enable-openssl=runtime instead of $OPT" >> "$TMPLOG" |
| 591 | - ;; |
| 592 | - --disable-openssl-runtime) |
| 593 | - OPT_OPENSSL=yes # legacy option |
| 594 | - echo "warning: use --enable-openssl instead of $OPT" >> "$TMPLOG" |
| 595 | - ;; |
| 596 | - --target=*) |
| 597 | - BUILD_TARGET=$(get_opt_value $OPT) |
| 598 | - ;; |
| 599 | - --cc=*) |
| 600 | - CC=$(get_opt_value $OPT) |
| 601 | - OPT_CC=1 |
| 602 | - ;; |
| 603 | - --ar=*) |
| 604 | - CMD_AR=$(get_opt_value $OPT) |
| 605 | - ;; |
| 606 | - --enable-static) |
| 607 | - OPT_STATIC=yes |
| 608 | - ;; |
| 609 | - --enable-static=librhash) |
| 610 | - OPT_STATIC=librhash |
| 611 | - ;; |
| 612 | - --disable-static) |
| 613 | - OPT_STATIC=no |
| 614 | - ;; |
| 615 | - --enable-lib-static) |
| 616 | - INSTALL_LIB_STATIC=yes |
| 617 | - ;; |
| 618 | - --disable-lib-static) |
| 619 | - INSTALL_LIB_STATIC=no |
| 620 | - ;; |
| 621 | - --enable-lib-shared) |
| 622 | - INSTALL_LIB_SHARED=yes |
| 623 | - ;; |
| 624 | - --disable-lib-shared) |
| 625 | - INSTALL_LIB_SHARED=no |
| 626 | - ;; |
| 627 | - --enable-symlinks) |
| 628 | - # use default INSTALL_SYMLINKS list |
| 629 | - ;; |
| 630 | - --enable-symlinks=*) |
| 631 | - INSTALL_SYMLINKS=$(get_opt_value $OPT) |
| 632 | - ;; |
| 633 | - --disable-symlinks) |
| 634 | - INSTALL_SYMLINKS= |
| 635 | - ;; |
| 636 | - --enable-debug) |
| 637 | - BUILD_DEBUG='-g' |
| 638 | - ;; |
| 639 | - --enable-debug=*) |
| 640 | - BUILD_DEBUG='-g '$(get_opt_value $OPT) |
| 641 | - ;; |
| 642 | - --disable-debug) |
| 643 | - BUILD_DEBUG= |
| 644 | - ;; |
| 645 | - --with-install=*) |
| 646 | - CMD_INSTALL=$(get_opt_value $OPT) |
| 647 | - ;; |
| 648 | - --extra-cflags=*) |
| 649 | - BUILD_EXTRA_CFLAGS="$BUILD_EXTRA_CFLAGS $(get_opt_value $OPT)" |
| 650 | - ;; |
| 651 | - --extra-ldflags=*) |
| 652 | - BUILD_EXTRA_LDFLAGS="$BUILD_EXTRA_LDFLAGS $(get_opt_value $OPT)" |
| 653 | - ;; |
| 654 | - *) |
| 655 | - echo "unknown option $OPT" |
| 656 | - exit 1 |
| 657 | - ;; |
| 658 | - esac |
| 659 | - shift |
| 660 | -done |
| 661 | - |
| 662 | -##################################################################### |
| 663 | -# set variables which use INSTALL_PREFIX |
| 664 | -test -z "$INSTALL_EXEC_PREFIX_SET" && INSTALL_EXEC_PREFIX="$INSTALL_PREFIX" |
| 665 | -test -z "$INSTALL_BINDIR" && INSTALL_BINDIR="$INSTALL_EXEC_PREFIX/bin" |
| 666 | -test -z "$INSTALL_MANDIR" && INSTALL_MANDIR="$INSTALL_PREFIX/share/man" |
| 667 | -test -z "$INSTALL_SYSCONFDIR" && INSTALL_SYSCONFDIR="$INSTALL_PREFIX/etc" |
| 668 | -test -z "$INSTALL_INCDIR" && INSTALL_INCDIR="$INSTALL_PREFIX/include" |
| 669 | -test -z "$INSTALL_LIBDIR" && INSTALL_LIBDIR="$INSTALL_EXEC_PREFIX/lib" |
| 670 | -test -z "$INSTALL_PKGCONFIGDIR" && INSTALL_PKGCONFIGDIR="$INSTALL_LIBDIR/pkgconfig" |
| 671 | -test -z "$INSTALL_LOCALEDIR" && INSTALL_LOCALEDIR="$INSTALL_PREFIX/share/locale" |
| 672 | - |
| 673 | -##################################################################### |
| 674 | -# logging functions |
| 675 | -log_start() |
| 676 | -{ |
| 677 | - echo "============ Checking for $1 ============" >> "$TMPLOG" |
| 678 | -} |
| 679 | - |
| 680 | -log_finish() |
| 681 | -{ |
| 682 | - echo "=============================================" >> "$TMPLOG" |
| 683 | - echo "" >> "$TMPLOG" |
| 684 | -} |
| 685 | - |
| 686 | -# echo and log a start of a check |
| 687 | -start_check() { |
| 688 | - log_start "$1" |
| 689 | - printf '%s' "Checking for $1 ... " |
| 690 | - res_comment="" |
| 691 | -} |
| 692 | - |
| 693 | -# echo and log the results of a check |
| 694 | -finish_check() { |
| 695 | - if test -n "$res_comment"; then |
| 696 | - res_comment="($res_comment)" |
| 697 | - fi |
| 698 | - echo "Result is: $1 $res_comment" >> "$TMPLOG" |
| 699 | - log_finish |
| 700 | - echo "$1 $res_comment" |
| 701 | - res_comment="" |
| 702 | -} |
| 703 | - |
| 704 | -##################################################################### |
| 705 | -# detect source directories |
| 706 | -start_check "sources" |
| 707 | -HAS_RHASH=no |
| 708 | -HAS_LIBRHASH=no |
| 709 | -HAS_BINDINGS=no |
| 710 | -RHASH_VERSION= |
| 711 | -RHASH_VERSION_MAJOR= |
| 712 | -RHASH_XVERSION= |
| 713 | -BINDINGS_VERSION= |
| 714 | -RHASH_SRC= |
| 715 | -LIBRHASH_SRC= |
| 716 | -LIBRHASH_PC= |
| 717 | -BINDINGS_SRC= |
| 718 | -SRC_FOUND=no |
| 719 | -test -f Makefile || die "Makefile not found" |
| 720 | -if test -f rhash_main.c; then |
| 721 | - HAS_RHASH=yes |
| 722 | - SRC_FOUND=RHash |
| 723 | - if test -d librhash; then |
| 724 | - HAS_LIBRHASH=yes |
| 725 | - LIBRHASH_SRC=librhash/ |
| 726 | - fi |
| 727 | - if test -f bindings/version.properties; then |
| 728 | - HAS_BINDINGS=yes |
| 729 | - BINDINGS_SRC=bindings/ |
| 730 | - fi |
| 731 | -elif test -f rhash.c; then |
| 732 | - HAS_LIBRHASH=yes |
| 733 | - SRC_FOUND=LibRHash |
| 734 | -elif test -f version.properties; then |
| 735 | - HAS_BINDINGS=yes |
| 736 | - SRC_FOUND="RHash bindings" |
| 737 | -fi |
| 738 | -echo "RHASH_SRC=$RHASH_SRC, LIBRHASH_SRC=$LIBRHASH_SRC, BINDINGS_SRC=$BINDINGS_SRC" >> "$TMPLOG" |
| 739 | - |
| 740 | -##################################################################### |
| 741 | -# check RHash version |
| 742 | -good_version() { echo "$1" | grep -q '^[1-9]\.[1-9][0-9]*\.[0-9]' ; } |
| 743 | -if test "$HAS_RHASH" = "yes" || test "$HAS_LIBRHASH" = "yes"; then |
| 744 | - test -f "${RHASH_SRC}version.h" || die "${RHASH_SRC}version.h not found" |
| 745 | - RHASH_VERSION=$(cut -d'"' -f2 "${RHASH_SRC}version.h") |
| 746 | - echo "RHASH_VERSION=$RHASH_VERSION" >> "$TMPLOG" |
| 747 | - good_version "$RHASH_VERSION" || die "wrong version: $RHASH_VERSION" |
| 748 | - _v1=$(echo $RHASH_VERSION | cut -d '.' -f 1) |
| 749 | - _v2=$(echo $RHASH_VERSION | cut -d '.' -f 2) |
| 750 | - _v3=$(echo $RHASH_VERSION | cut -d '.' -f 3) |
| 751 | - RHASH_VERSION_MAJOR=$_v1 |
| 752 | - RHASH_XVERSION=$(printf "0x%02x%02x%02x%02x" "$_v1" "$_v2" "$_v3" 0) |
| 753 | - test "$HAS_LIBRHASH" = "yes" && LIBRHASH_PC=dist/librhash.pc |
| 754 | -fi |
| 755 | -if test "$HAS_BINDINGS" = "yes"; then |
| 756 | - BINDINGS_VERSION=$(cut -d = -f 2 "${BINDINGS_SRC}version.properties") |
| 757 | - echo "BINDINGS_VERSION=$BINDINGS_VERSION" >> "$TMPLOG" |
| 758 | - good_version "$BINDINGS_VERSION" || die "wrong bindings version: $BINDINGS_VERSION" |
| 759 | - test -z "$RHASH_VERSION" && RHASH_VERSION="$BINDINGS_VERSION" |
| 760 | -fi |
| 761 | -test -n "$RHASH_VERSION" && SRC_FOUND="$SRC_FOUND $RHASH_VERSION" |
| 762 | -finish_check "$SRC_FOUND" |
| 763 | -test "$SRC_FOUND" = "no" && die "sources not found" |
| 764 | - |
| 765 | -if test "$HAS_BINDINGS" = "yes" && test "$BINDINGS_VERSION" != "$RHASH_VERSION"; then |
| 766 | - echo "Updating ${BINDINGS_SRC}version.properties" |
| 767 | - echo "version=$RHASH_VERSION" > ${BINDINGS_SRC}version.properties |
| 768 | -fi |
| 769 | - |
| 770 | -##################################################################### |
| 771 | -# helper functions for compilation checks |
| 772 | -join_params() |
| 773 | -{ |
| 774 | - printf '%s ' $@ | sed -e 's/ $//' |
| 775 | -} |
| 776 | - |
| 777 | -run_cmd() { |
| 778 | - echo "Run: $@" >> "$TMPLOG" |
| 779 | - $@ >> "$TMPLOG" 2>&1 |
| 780 | - TMPRES="$?" |
| 781 | - echo "Run result: $TMPRES" >> "$TMPLOG" |
| 782 | - echo >> "$TMPLOG" |
| 783 | - return "$TMPRES" |
| 784 | -} |
| 785 | - |
| 786 | -yn_nonempty() |
| 787 | -{ |
| 788 | - test -n "$1" && echo yes || echo no; |
| 789 | -} |
| 790 | - |
| 791 | -# try to run a source file compilation and return the exit code |
| 792 | -compile_check() { |
| 793 | - source="$1" |
| 794 | - shift |
| 795 | - echo >> "$TMPLOG" |
| 796 | - echo "----- source file: $source -----" >> "$TMPLOG" |
| 797 | - cat "$source" >> "$TMPLOG" |
| 798 | - echo "----- end of file: $source -----" >> "$TMPLOG" |
| 799 | - echo "$CC $OPTFLAGS $WARN_CFLAGS $source $BUILD_EXTRA_CFLAGS $BUILD_EXTRA_LDFLAGS $CHECK_LDFLAGS -o $TMPBIN $@" >> "$TMPLOG" |
| 800 | - rm -f "$TMPBIN" |
| 801 | - $CC $OPTFLAGS $WARN_CFLAGS "$source" $BUILD_EXTRA_CFLAGS $BUILD_EXTRA_LDFLAGS $CHECK_LDFLAGS -o "$TMPBIN" "$@" >> "$TMPLOG" 2>&1 |
| 802 | - TMPRES="$?" |
| 803 | - echo "Compilation result: $TMPRES" >> "$TMPLOG" |
| 804 | - echo >> "$TMPLOG" |
| 805 | - return "$TMPRES" |
| 806 | -} |
| 807 | - |
| 808 | -cc_check() { |
| 809 | - compile_check $TMPC $@ |
| 810 | -} |
| 811 | - |
| 812 | -create_c_file() { |
| 813 | - rm -f "$TMPC" |
| 814 | - if test -n "$1"; then |
| 815 | - echo "#include <$1>" > $TMPC || die "Can't write to the $TMPC file" |
| 816 | - fi |
| 817 | -} |
| 818 | - |
| 819 | -cc_check_macro() { |
| 820 | - create_c_file "$1" |
| 821 | - cat >> $TMPC << EOF |
| 822 | -#ifndef $2 |
| 823 | -#error condition not true: $2 |
| 824 | -#endif |
| 825 | -int main(void) { return 0; } |
| 826 | -EOF |
| 827 | - shift 2 |
| 828 | - cc_check $@ |
| 829 | -} |
| 830 | - |
| 831 | -cc_check_cflag() { |
| 832 | - echo "int main(void) { return 0; }" > $TMPC |
| 833 | - cc_check $@ |
| 834 | -} |
| 835 | - |
| 836 | -cc_check_headers() { |
| 837 | - rm -f "$TMPC" |
| 838 | - while test -n "$1"; do |
| 839 | - echo "#include <$1>" >> $TMPC |
| 840 | - shift |
| 841 | - done |
| 842 | - echo "int main(void) { return 0; }" >> $TMPC |
| 843 | - cc_check "-c" |
| 844 | -} |
| 845 | - |
| 846 | -cc_check_statement() { |
| 847 | - create_c_file "$1" |
| 848 | - cat >> $TMPC << EOF |
| 849 | -int main(void) { |
| 850 | - $2 |
| 851 | - return 0; |
| 852 | -} |
| 853 | -EOF |
| 854 | - shift 2 |
| 855 | - cc_check $@ |
| 856 | -} |
| 857 | - |
| 858 | -##################################################################### |
| 859 | -# detect host and target OS |
| 860 | -start_check "target OS" |
| 861 | -HOST_OS=$(uname -s 2>&1) |
| 862 | -case "$HOST_OS" in |
| 863 | - Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|MorphOS|AIX|AmigaOS|Haiku) |
| 864 | - ;; |
| 865 | - IRIX*) |
| 866 | - HOST_OS=IRIX |
| 867 | - ;; |
| 868 | - GNU/kFreeBSD) |
| 869 | - HOST_OS=FreeBSD |
| 870 | - ;; |
| 871 | - HP-UX*) |
| 872 | - HOST_OS=HP-UX |
| 873 | - ;; |
| 874 | - MINGW32*) |
| 875 | - HOST_OS=MINGW32 |
| 876 | - ;; |
| 877 | - MINGW64*) |
| 878 | - HOST_OS=MINGW64 |
| 879 | - ;; |
| 880 | - MSYS*) |
| 881 | - HOST_OS=MSYS |
| 882 | - ;; |
| 883 | - [cC][yY][gG][wW][iI][nN]*) |
| 884 | - HOST_OS=CYGWIN |
| 885 | - ;; |
| 886 | - OS/2*) |
| 887 | - HOST_OS=OS/2 |
| 888 | - ;; |
| 889 | - *) |
| 890 | - HOST_OS="$HOST_OS-UNKNOWN" |
| 891 | - ;; |
| 892 | -esac |
| 893 | - |
| 894 | -if test -z "$BUILD_TARGET"; then |
| 895 | - # host's CPU/instruction set |
| 896 | - set_host_arch() { |
| 897 | - case "$1" in |
| 898 | - x86_64|amd64|i[3-9]86*|i86pc|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686) HOST_ARCH=i386 ;; |
| 899 | - ia64) HOST_ARCH=ia64 ;; |
| 900 | - macppc|ppc*|Power*) HOST_ARCH=ppc ;; |
| 901 | - alpha) HOST_ARCH=alpha ;; |
| 902 | - sun4*|sparc*) HOST_ARCH=sparc ;; |
| 903 | - parisc*|hppa*|9000*) HOST_ARCH=hppa ;; |
| 904 | - aarch64*) HOST_ARCH=aarch64 ;; |
| 905 | - arm*|zaurus|cats) HOST_ARCH=arm ;; |
| 906 | - sh3|sh4|sh4a) HOST_ARCH=sh ;; |
| 907 | - s390) HOST_ARCH=s390 ;; |
| 908 | - s390x) HOST_ARCH=s390x ;; |
| 909 | - sw_64) HOST_ARCH=sw_64 ;; |
| 910 | - *mips*) HOST_ARCH=mips ;; |
| 911 | - nios2) HOST_ARCH=nios2 ;; |
| 912 | - vax) HOST_ARCH=vax ;; |
| 913 | - xtensa*) HOST_ARCH=xtensa ;; |
| 914 | - *) HOST_ARCH=UNKNOWN ;; |
| 915 | - esac |
| 916 | - } |
| 917 | - set_host_arch "$(uname -m 2>&1)" |
| 918 | - if test "$HOST_ARCH" = UNKNOWN; then |
| 919 | - set_host_arch "$(uname -p 2>&1)" |
| 920 | - fi |
| 921 | - TARGET_OS="$HOST_OS" |
| 922 | - TARGET_ARCH="$HOST_ARCH" |
| 923 | -else |
| 924 | - set_target_os() { |
| 925 | - component=$1 |
| 926 | - part=$(echo $BUILD_TARGET | cut -d '-' -f $component) |
| 927 | - case "$(echo $part | tr '[A-Z]' '[a-z]')" in |
| 928 | - linux|uclinux) TARGET_OS=Linux ;; |
| 929 | - freebsd*) TARGET_OS=FreeBSD ;; |
| 930 | - gnu/kfreebsd) TARGET_OS=FreeBSD ;; |
| 931 | - netbsd) TARGET_OS=NetBSD ;; |
| 932 | - bsd/os) TARGET_OS=BSD/OS ;; |
| 933 | - openbsd) TARGET_OS=OpenBSD ;; |
| 934 | - dragonfly) TARGET_OS=DragonFly ;; |
| 935 | - sunos|solaris2.*) TARGET_OS=SunOS ;; |
| 936 | - qnx) TARGET_OS=QNX ;; |
| 937 | - morphos) TARGET_OS=MorphOS ;; |
| 938 | - amigaos) TARGET_OS=AmigaOS ;; |
| 939 | - mingw32*) TARGET_OS=MINGW32 ;; |
| 940 | - wine) TARGET_OS=Wine ;; |
| 941 | - darwin*) TARGET_OS=Darwin ;; |
| 942 | - cygwin*) TARGET_OS=CYGWIN ;; |
| 943 | - gnu) TARGET_OS=GNU ;; |
| 944 | - esac |
| 945 | - } |
| 946 | - TARGET_OS="UNKNOWN" |
| 947 | - set_target_os 3 |
| 948 | - if test "$TARGET_OS" = UNKNOWN; then |
| 949 | - set_target_os 2 |
| 950 | - fi |
| 951 | - TARGET_ARCH=$(echo $BUILD_TARGET | cut -d '-' -f 1) |
| 952 | - if test "$(echo $TARGET_ARCH)" != "x86_64"; then |
| 953 | - TARGET_ARCH=$(echo $TARGET_ARCH | tr '_' '-') |
| 954 | - fi |
| 955 | -fi |
| 956 | - |
| 957 | -echo "Host OS : $HOST_OS" >> "$TMPLOG" |
| 958 | -echo "Target OS : $TARGET_OS" >> "$TMPLOG" |
| 959 | -echo "Target ARCH: $TARGET_ARCH" >> "$TMPLOG" |
| 960 | -finish_check "$TARGET_OS" |
| 961 | -test "$TARGET_OS" = UNKNOWN && die "Unknown target OS, please specify the --target option" |
| 962 | - |
| 963 | -OS_LC="$(echo $TARGET_OS | tr '[A-Z]' '[a-z]')" |
| 964 | -aix() { test "$OS_LC" = "aix"; } |
| 965 | -amigaos() { test "$OS_LC" = "amigaos"; } |
| 966 | -bsdos() { test "$OS_LC" = "bsd/os"; } |
| 967 | -darwin() { test "$OS_LC" = "darwin"; } |
| 968 | -dragonfly() { test "$OS_LC" = "dragonfly"; } |
| 969 | -freebsd() { test "$OS_LC" = "freebsd" || test "$OS_LC" = "gnu/kfreebsd"; } |
| 970 | -gnu() { test "$OS_LC" = "gnu"; } |
| 971 | -hpux() { test "$OS_LC" = "hp-ux"; } |
| 972 | -irix() { test "$OS_LC" = "irix"; } |
| 973 | -linux() { test "$OS_LC" = "linux"; } |
| 974 | -mingw32() { test "$OS_LC" = "mingw32"; } |
| 975 | -mingw64() { test "$OS_LC" = "mingw64"; } |
| 976 | -msys() { test "$OS_LC" = "msys"; } |
| 977 | -cygwin() { test "$OS_LC" = "cygwin"; } |
| 978 | -netbsd() { test "$OS_LC" = "netbsd"; } |
| 979 | -openbsd() { test "$OS_LC" = "openbsd"; } |
| 980 | -os2() { test "$OS_LC" = "os/2"; } |
| 981 | -qnx() { test "$OS_LC" = "qnx"; } |
| 982 | -sunos() { test "$OS_LC" = "sunos"; } |
| 983 | -wine() { test "$OS_LC" = "wine"; } |
| 984 | -win32() { cygwin || mingw32 || mingw64 || msys || wine; } |
| 985 | -bsd() { dragonfly || freebsd || netbsd || openbsd ; } |
| 986 | -posix_make() { aix || bsdos || hpux || irix || qnx || sunos; } |
| 987 | - |
| 988 | -##################################################################### |
| 989 | -# Checking CC version... |
| 990 | -# Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure) |
| 991 | -cc_vendor= |
| 992 | -if test "$(basename $CC)" = "icc" || test "$(basename $CC)" = "ecc"; then |
| 993 | - start_check "$CC version" |
| 994 | - cc_vendor=intel |
| 995 | - cc_name=$($CC -V 2>&1 | head -n 1 | cut -d ',' -f 1) |
| 996 | - cc_version=$($CC -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3) |
| 997 | - _cc_major=$(echo $cc_version | cut -d '.' -f 1) |
| 998 | - _cc_minor=$(echo $cc_version | cut -d '.' -f 2) |
| 999 | - case $cc_version in |
| 1000 | - '') |
| 1001 | - cc_version="v. ?.??, bad" |
| 1002 | - cc_fail=yes |
| 1003 | - ;; |
| 1004 | - 10.1|11.1|12.*|13.*|20*) |
| 1005 | - cc_version="$cc_version, ok" |
| 1006 | - ;; |
| 1007 | - *) |
| 1008 | - cc_version="$cc_version, bad" |
| 1009 | - cc_fail=yes |
| 1010 | - ;; |
| 1011 | - esac |
| 1012 | - finish_check "$cc_version" |
| 1013 | -else |
| 1014 | - CC_TMP="$CC" |
| 1015 | - test -n "$OPT_CC" && OTHER_CC= || OTHER_CC="gcc cc" |
| 1016 | - for CC in "$CC_TMP" $OTHER_CC; do |
| 1017 | - cc_name_tmp= |
| 1018 | - if run_cmd "$CC -v"; then |
| 1019 | - cc_name_tmp=$($CC -v 2>&1 | tail -n 1 | cut -d ' ' -f 1) |
| 1020 | - elif run_cmd "$CC --version"; then |
| 1021 | - cc_name_tmp=$($CC --version 2>&1 | head -n 1 | cut -d ' ' -f 1) |
| 1022 | - fi |
| 1023 | - if echo "$cc_name_tmp" | grep -q "gcc"; then |
| 1024 | - cc_name=$cc_name_tmp |
| 1025 | - start_check "$CC version" |
| 1026 | - cc_vendor=gnu |
| 1027 | - cc_version=$($CC -dumpversion 2>&1) |
| 1028 | - if ! echo $cc_version | grep -q '^[0-9][0-9]*\.[0-9]'; then |
| 1029 | - cc_v2=$($CC -dumpfullversion -dumpversion 2>/dev/null) |
| 1030 | - if echo $cc_v2 | grep -q '^[0-9][0-9]*\.[0-9]'; then |
| 1031 | - cc_version=$cc_v2 |
| 1032 | - fi |
| 1033 | - fi |
| 1034 | - case $cc_version in |
| 1035 | - 2.96*) |
| 1036 | - cc_fail=yes |
| 1037 | - ;; |
| 1038 | - *) |
| 1039 | - _cc_major=$(echo $cc_version | cut -d '.' -f 1) |
| 1040 | - _cc_minor=$(echo $cc_version | cut -d '.' -f 2) |
| 1041 | - _cc_mini=$(echo $cc_version | cut -d '.' -f 3) |
| 1042 | - ;; |
| 1043 | - esac |
| 1044 | - finish_check "$cc_name $cc_version" |
| 1045 | - break |
| 1046 | - elif $CC --version 2>&1 | grep -q "clang"; then |
| 1047 | - start_check "$CC version" |
| 1048 | - cc_vendor=clang |
| 1049 | - cc_version=$($CC -dumpversion 2>&1) |
| 1050 | - finish_check "clang $cc_version" |
| 1051 | - break |
| 1052 | - else |
| 1053 | - cc_name_tmp=$($CC -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3) |
| 1054 | - if test "$cc_name_tmp" = "Sun C"; then |
| 1055 | - start_check "$CC version" |
| 1056 | - cc_vendor=sun |
| 1057 | - cc_version=$($CC -V 2>&1 | head -n 1 | cut -d ' ' -f 4) |
| 1058 | - res_comment="experimental support" |
| 1059 | - finish_check "Sun C $cc_version" |
| 1060 | - break |
| 1061 | - fi |
| 1062 | - fi |
| 1063 | - done |
| 1064 | -fi # icc |
| 1065 | -test -z "$cc_vendor" && die "compiler not found" |
| 1066 | -test "$cc_fail" = "yes" && die "unsupported compiler version" |
| 1067 | - |
| 1068 | -log_start "compiler working with default options" |
| 1069 | -if ! cc_check_cflag; then |
| 1070 | - die "compiler doesn't work" |
| 1071 | -fi |
| 1072 | -log_finish |
| 1073 | - |
| 1074 | -if test "$cc_name" = "gcc" && test "$_cc_major" -gt 3; then |
| 1075 | - WARN_CFLAGS="$WARN_CFLAGS -Wdeclaration-after-statement" |
| 1076 | -fi |
| 1077 | - |
| 1078 | -##################################################################### |
| 1079 | -# select optimization flags |
| 1080 | -has_optimization() |
| 1081 | -{ |
| 1082 | - # posix-compatible way to find -O<n> option |
| 1083 | - for OPT in $BUILD_EXTRA_CFLAGS $BUILD_DEBUG; do |
| 1084 | - case "$OPT" in |
| 1085 | - -O[0-3]|-O) return 0 ;; |
| 1086 | - esac |
| 1087 | - done |
| 1088 | - return 1 |
| 1089 | -} |
| 1090 | -has_optimization && OPTLEVEL= || OPTLEVEL="-O2" |
| 1091 | -test -n "$BUILD_DEBUG" && OPTNDEBUG= || OPTNDEBUG="-DNDEBUG" |
| 1092 | -OPTFLAGS="-pipe -ffunction-sections -fdata-sections" |
| 1093 | -check_set_contains "-fno-omit-frame-pointer" $BUILD_EXTRA_CFLAGS $BUILD_DEBUG \ |
| 1094 | - || OPTFLAGS="$OPTFLAGS -fomit-frame-pointer" |
| 1095 | -OPTFLAGS=$(join_params $BUILD_DEBUG $OPTLEVEL $OPTNDEBUG $OPTFLAGS) |
| 1096 | -LIBRHASH_OPTFLAGS=$OPTFLAGS |
| 1097 | - |
| 1098 | -# test that compiler works with options specified by command line |
| 1099 | -log_start "compiler working with provided options" |
| 1100 | -if ! cc_check_cflag; then |
| 1101 | - die "wrong compiler options provided" |
| 1102 | -fi |
| 1103 | -log_finish |
| 1104 | - |
| 1105 | -##################################################################### |
| 1106 | -# detect proper shared library name |
| 1107 | -SHARED_PREFIX="lib" |
| 1108 | -STATIC_PREFIX="lib" |
| 1109 | -STATIC_EXT=".a" |
| 1110 | -SHARED_EXT=".so.${RHASH_VERSION_MAJOR}" |
| 1111 | -SO_MAJ_EXT=".so.${RHASH_VERSION_MAJOR}" |
| 1112 | -SOLINK_EXT=".so" |
| 1113 | -EXEC_EXT= |
| 1114 | -NEED_IMPLIB=no |
| 1115 | -NEED_SOLINK=yes |
| 1116 | -INSTALL_SO_DIR=$INSTALL_LIBDIR |
| 1117 | -LN_S="ln -sf" |
| 1118 | -if win32; then |
| 1119 | - LN_S="cp -pR" |
| 1120 | - EXEC_EXT=".exe" |
| 1121 | - SHARED_EXT=".dll" |
| 1122 | - SO_MAJ_EXT=$SHARED_EXT |
| 1123 | - NEED_IMPLIB=yes |
| 1124 | - NEED_SOLINK=no |
| 1125 | - INSTALL_SO_DIR=$INSTALL_BINDIR |
| 1126 | - if msys; then |
| 1127 | - SHARED_PREFIX="msys-" |
| 1128 | - elif cygwin; then |
| 1129 | - SHARED_PREFIX="cyg" |
| 1130 | - fi |
| 1131 | -elif darwin; then |
| 1132 | - SHARED_EXT=".${RHASH_VERSION}.dylib" |
| 1133 | - SO_MAJ_EXT=".${RHASH_VERSION_MAJOR}.dylib" |
| 1134 | - SOLINK_EXT=".dylib" |
| 1135 | -elif linux || bsd || gnu; then |
| 1136 | - # use the full library version for the library file extension |
| 1137 | - SHARED_EXT=".so.${RHASH_VERSION}" |
| 1138 | -fi |
| 1139 | - |
| 1140 | -##################################################################### |
| 1141 | -# check for linker flags |
| 1142 | -LD_STATIC= |
| 1143 | -test "$OPT_STATIC" = "auto" && OPT_STATIC=no |
| 1144 | -if test "$OPT_STATIC" = "yes"; then |
| 1145 | - LD_STATIC=-static |
| 1146 | - test "$OPT_OPENSSL" = "runtime" && ! win32 && LD_STATIC= |
| 1147 | -fi |
| 1148 | - |
| 1149 | -if test -n "$LD_STATIC"; then |
| 1150 | - start_check "linker support for $LD_STATIC" |
| 1151 | - if cc_check_cflag "$LD_STATIC"; then |
| 1152 | - test "$OPT_STATIC" = "yes" && CHECK_LDFLAGS=$LD_STATIC |
| 1153 | - else |
| 1154 | - LD_STATIC= |
| 1155 | - fi |
| 1156 | - finish_check $(yn_nonempty "$LD_STATIC") |
| 1157 | -fi |
| 1158 | - |
| 1159 | -LIBDL_LDFLAGS= |
| 1160 | -if win32; then |
| 1161 | - ALLOW_RUNTIME_LINKING=yes |
| 1162 | -elif test "$OPT_STATIC" = "yes"; then |
| 1163 | - ALLOW_RUNTIME_LINKING=no |
| 1164 | - test "$OPT_OPENSSL" = "runtime" && die "static linking is incompatible with OpenSSL runtime loading" |
| 1165 | -elif test "$OPT_OPENSSL" = "auto" || test "$OPT_OPENSSL" = "runtime"; then |
| 1166 | - start_check "linker support for dlopen" |
| 1167 | - ALLOW_RUNTIME_LINKING=no |
| 1168 | - if cc_check_statement "dlfcn.h" 'dlopen("", RTLD_NOW);'; then |
| 1169 | - ALLOW_RUNTIME_LINKING=yes |
| 1170 | - elif cc_check_statement "dlfcn.h" 'dlopen("", RTLD_NOW);' "-ldl"; then |
| 1171 | - ALLOW_RUNTIME_LINKING=yes |
| 1172 | - LIBDL_LDFLAGS="-ldl" |
| 1173 | - fi |
| 1174 | - finish_check "$ALLOW_RUNTIME_LINKING" |
| 1175 | -fi |
| 1176 | - |
| 1177 | -HAS_SSE4=no |
| 1178 | -HAS_X86_SSE4_SHANI="no" |
| 1179 | -if test "$OPT_SHANI" = "auto"; then |
| 1180 | - start_check "sha1 intrinsics" |
| 1181 | - if cc_check_statement "x86intrin.h" \ |
| 1182 | - "__m128i a = _mm_setzero_si128(); (void)_mm_extract_epi32(a, 0);" \ |
| 1183 | - "-msse4"; then |
| 1184 | - HAS_SSE4=yes |
| 1185 | - # Now check for the SHANI extension |
| 1186 | - if cc_check_statement "x86intrin.h" \ |
| 1187 | - "__m128i a = _mm_setzero_si128(); a = _mm_sha1rnds4_epu32(a, a, 0);" \ |
| 1188 | - "-msse4 -msha"; |
| 1189 | - then |
| 1190 | - HAS_X86_SSE4_SHANI=yes |
| 1191 | - # Add all SHANI options to the LIBRHASH_OPTFLAGS, so it can be overriden by |
| 1192 | - # distro-specific OPTFLAGS, but only all together |
| 1193 | - LIBRHASH_OPTFLAGS=$(join_params $LIBRHASH_OPTFLAGS -DRHASH_SSE4_SHANI -msse4 -msha) |
| 1194 | - fi |
| 1195 | - fi |
| 1196 | - finish_check "$HAS_X86_SSE4_SHANI" |
| 1197 | -fi |
| 1198 | - |
| 1199 | -SHARED_VSCRIPT= |
| 1200 | -if ! darwin; then |
| 1201 | - start_check "linker support for --version-script" |
| 1202 | - echo "{ local: *; };" > $TMPT |
| 1203 | - cc_check_cflag "-Wl,--version-script,$TMPT -shared" && |
| 1204 | - SHARED_VSCRIPT=",--version-script,exports.sym" |
| 1205 | - finish_check $(yn_nonempty "$SHARED_VSCRIPT") |
| 1206 | -fi |
| 1207 | - |
| 1208 | -WIN_LDFLAGS= |
| 1209 | -if win32; then |
| 1210 | - start_check "linker support for --nxcompat --no-seh --dynamicbase" |
| 1211 | - cc_check_cflag "-Wl,--nxcompat,--no-seh,--dynamicbase" && |
| 1212 | - WIN_LDFLAGS="-Wl,--nxcompat,--no-seh,--dynamicbase" |
| 1213 | - finish_check $(yn_nonempty "$WIN_LDFLAGS") |
| 1214 | -fi |
| 1215 | - |
| 1216 | -##################################################################### |
| 1217 | -# detect shared and static library names and build flags |
| 1218 | -LIBRHASH_STATIC="${STATIC_PREFIX}rhash${STATIC_EXT}" |
| 1219 | -LIBRHASH_SHARED="${SHARED_PREFIX}rhash${SHARED_EXT}" |
| 1220 | -LIBRHASH_SO_MAJ="${SHARED_PREFIX}rhash${SO_MAJ_EXT}" |
| 1221 | -LIBRHASH_SOLINK="${SHARED_PREFIX}rhash${SOLINK_EXT}" |
| 1222 | -LIBRHASH_SOLINK_TARGET= |
| 1223 | -test "$NEED_SOLINK" = "yes" && LIBRHASH_SOLINK_TARGET=$LIBRHASH_SOLINK |
| 1224 | -LIBRHASH_DEF="${SHARED_PREFIX}rhash.def" |
| 1225 | -LIBRHASH_IMPLIB="${STATIC_PREFIX}rhash${SO_MAJ_EXT}${STATIC_EXT}" |
| 1226 | -LIBRHASH_EXPORTS_FILE="exports.sym" |
| 1227 | -LIBRHASH_EXPORTS_SKIP="rhash_wfile" |
| 1228 | -LIBRHASH_EXPORTS_TARGET= |
| 1229 | -LIBRHASH_SH_CFLAGS="" |
| 1230 | -LIBRHASH_SH_LDFLAGS="" |
| 1231 | -LIBRHASH_RM_FILES= |
| 1232 | -if win32; then |
| 1233 | - LIBRHASH_SH_CFLAGS="-DRHASH_EXPORTS" |
| 1234 | - LIBRHASH_SH_LDFLAGS="-shared -Wl,--out-implib=${LIBRHASH_IMPLIB}${SHARED_VSCRIPT},--output-def,${LIBRHASH_DEF}" |
| 1235 | - test -n "$SHARED_VSCRIPT" && LIBRHASH_EXPORTS_TARGET=$LIBRHASH_EXPORTS_FILE |
| 1236 | - LIBRHASH_RM_FILES="${LIBRHASH_IMPLIB} ${LIBRHASH_DEF}" |
| 1237 | - LIBRHASH_EXPORTS_SKIP="__NO_SKIP__" |
| 1238 | -elif darwin; then |
| 1239 | - LIBRHASH_SH_CFLAGS="-fpic" |
| 1240 | - LIBRHASH_SH_LDFLAGS='-dynamiclib -Wl,-install_name,$(LIBRHASH_SO_MAJ)/$@' |
| 1241 | -else |
| 1242 | - LIBRHASH_SH_CFLAGS="-fpic" |
| 1243 | - LIBRHASH_SH_LDFLAGS="-shared -Wl${SHARED_VSCRIPT},-soname,\$(LIBRHASH_SO_MAJ)" |
| 1244 | - test -n "$SHARED_VSCRIPT" && LIBRHASH_EXPORTS_TARGET=$LIBRHASH_EXPORTS_FILE |
| 1245 | -fi |
| 1246 | -test "x$LIBRHASH_SO_MAJ" != "x$LIBRHASH_SHARED" && LIBRHASH_RM_FILES="$LIBRHASH_RM_FILES $LIBRHASH_SO_MAJ" |
| 1247 | -LIBRHASH_RM_FILES=$(join_params $LIBRHASH_RM_FILES $LIBRHASH_EXPORTS_TARGET $LIBRHASH_SOLINK_TARGET) |
| 1248 | - |
| 1249 | -GETTEXT_LDFLAGS= |
| 1250 | -OPENSSL_LDFLAGS= |
| 1251 | -if test "$OPT_GETTEXT" != "no"; then |
| 1252 | - start_check "gettext" |
| 1253 | - GETTEXT_FOUND=no |
| 1254 | - if cc_check_headers "libintl.h"; then |
| 1255 | - if cc_check_statement "libintl.h" "gettext(\"\");"; then |
| 1256 | - GETTEXT_FOUND=found |
| 1257 | - elif cc_check_statement "libintl.h" "gettext(\"\");" "-lintl"; then |
| 1258 | - GETTEXT_LDFLAGS="-lintl" |
| 1259 | - GETTEXT_FOUND=found |
| 1260 | - elif cc_check_statement "libintl.h" "gettext(\"\");" "-lintl -liconv"; then |
| 1261 | - GETTEXT_LDFLAGS="-lintl -liconv" |
| 1262 | - GETTEXT_FOUND=found |
| 1263 | - fi |
| 1264 | - fi |
| 1265 | - if test "$GETTEXT_FOUND" = "found"; then |
| 1266 | - RHASH_DEFINES=$(join_params $RHASH_DEFINES -DUSE_GETTEXT) |
| 1267 | - RHASH_LOCALE_CFLAGS="-DLOCALEDIR=\\\"$INSTALL_LOCALEDIR\\\"" |
| 1268 | - fi |
| 1269 | - finish_check $GETTEXT_FOUND |
| 1270 | - test "$OPT_GETTEXT" = "yes" && test "$GETTEXT_FOUND" = "no" && die "gettext library not found" |
| 1271 | -fi |
| 1272 | - |
| 1273 | -if test "$OPT_OPENSSL" != "no"; then |
| 1274 | - start_check "OpenSSL" |
| 1275 | - OPENSSL_FOUND=no |
| 1276 | - if test "$ALLOW_RUNTIME_LINKING" = "no"; then |
| 1277 | - echo "No runtime library loading, because dlopen() is not found!" >> "$TMPLOG" |
| 1278 | - test "$OPT_OPENSSL" = "runtime" && die "dlopen() is required for OpenSSL runtime loading" |
| 1279 | - fi |
| 1280 | - OPENSSL_HEADERS="openssl/opensslconf.h openssl/md4.h openssl/md5.h openssl/sha.h" |
| 1281 | - if cc_check_headers $OPENSSL_HEADERS; then |
| 1282 | - if test "$OPT_OPENSSL" = "runtime" || ( test "$ALLOW_RUNTIME_LINKING" = "yes" && test "$OPT_OPENSSL" = "auto" ); then |
| 1283 | - OPENSSL_FOUND=runtime |
| 1284 | - LIBRHASH_DEFINES=$(join_params $LIBRHASH_DEFINES -DOPENSSL_RUNTIME) |
| 1285 | - OPENSSL_LDFLAGS="$LIBDL_LDFLAGS" |
| 1286 | - # note: libdl should disable -static |
| 1287 | - test -n "$LIBDL_LDFLAGS" && LD_STATIC= |
| 1288 | - elif win32 && cc_check_statement "openssl/md5.h" "MD5_Init(NULL);" "-leay32"; then |
| 1289 | - OPENSSL_FOUND=found |
| 1290 | - LIBRHASH_DEFINES=$(join_params $LIBRHASH_DEFINES -DUSE_OPENSSL) |
| 1291 | - OPENSSL_LDFLAGS="-leay32" |
| 1292 | - elif cc_check_statement "openssl/md5.h" "MD5_Init(NULL);" "-lcrypto"; then |
| 1293 | - OPENSSL_FOUND=found |
| 1294 | - LIBRHASH_DEFINES=$(join_params $LIBRHASH_DEFINES -DUSE_OPENSSL) |
| 1295 | - OPENSSL_LDFLAGS="-lcrypto" |
| 1296 | - fi |
| 1297 | - fi |
| 1298 | - finish_check $OPENSSL_FOUND |
| 1299 | - test "$OPT_OPENSSL" != "auto" && test "$OPENSSL_FOUND" = "no" && die "OpenSSL library not found" |
| 1300 | -fi |
| 1301 | - |
| 1302 | -# building of static/shared binary and library |
| 1303 | -RHASH_BUILD_TARGETS="\$(RHASH_BINARY)" |
| 1304 | -RHASH_LDFLAGS="\$(OPTLDFLAGS) \$(ADDLDFLAGS)" |
| 1305 | -RHASH_TEST_OPTIONS= |
| 1306 | -RHASH_EXTRA_INSTALL= |
| 1307 | -LIBRHASH_BUILD_TARGETS= |
| 1308 | -LIBRHASH_TEST_TARGETS= |
| 1309 | -EXTRA_INSTALL_LIBSHARED= |
| 1310 | -EXTRA_UNINSTALL_LIBSHARED= |
| 1311 | -if test "$OPT_STATIC" = "no"; then |
| 1312 | - LIBRHASH_TYPE=shared |
| 1313 | - LIBRHASH_PATH="\$(LIBRHASH_SHARED)" |
| 1314 | - RHASH_TEST_OPTIONS=--shared |
| 1315 | - test "$INSTALL_LIB_SHARED" = "auto" && INSTALL_LIB_SHARED=yes |
| 1316 | - test "$INSTALL_LIB_STATIC" = "yes" && RHASH_BUILD_TARGETS="$RHASH_BUILD_TARGETS \$(LIBRHASH_STATIC)" |
| 1317 | - RHASH_LDFLAGS=$(join_params $RHASH_LDFLAGS $GETTEXT_LDFLAGS) |
| 1318 | -else |
| 1319 | - LIBRHASH_TYPE=static |
| 1320 | - LIBRHASH_PATH="\$(LIBRHASH_STATIC)" |
| 1321 | - test "$INSTALL_LIB_SHARED" = "yes" && RHASH_BUILD_TARGETS="$RHASH_BUILD_TARGETS \$(LIBRHASH_SHARED)" |
| 1322 | - RHASH_LDFLAGS=$(join_params $RHASH_LDFLAGS $LD_STATIC $GETTEXT_LDFLAGS $OPENSSL_LDFLAGS) |
| 1323 | -fi |
| 1324 | -if test "$INSTALL_LIB_STATIC" = "yes"; then |
| 1325 | - RHASH_EXTRA_INSTALL=$(join_params $RHASH_EXTRA_INSTALL install-lib-static) |
| 1326 | - LIBRHASH_BUILD_TARGETS=$LIBRHASH_STATIC |
| 1327 | - LIBRHASH_TEST_TARGETS=test-static |
| 1328 | -fi |
| 1329 | -if test "$NEED_IMPLIB" = "yes"; then |
| 1330 | - EXTRA_INSTALL_LIBSHARED="install-implib" |
| 1331 | - EXTRA_UNINSTALL_LIBSHARED="uninstall-implib" |
| 1332 | -fi |
| 1333 | -if test "$INSTALL_LIB_SHARED" = "yes"; then |
| 1334 | - RHASH_EXTRA_INSTALL=$(join_params $RHASH_EXTRA_INSTALL install-lib-shared) |
| 1335 | - LIBRHASH_BUILD_TARGETS=$(join_params $LIBRHASH_BUILD_TARGETS $LIBRHASH_SHARED) |
| 1336 | - LIBRHASH_TEST_TARGETS=$(join_params $LIBRHASH_TEST_TARGETS test-shared) |
| 1337 | -fi |
| 1338 | - |
| 1339 | -# check for an old POSIX make |
| 1340 | -posix_make && Q_ASSIGN="=" || Q_ASSIGN="?=" |
| 1341 | - |
| 1342 | -##################################################################### |
| 1343 | -# write config.mak for the RHash makefile |
| 1344 | -if test "$HAS_RHASH" = "yes"; then |
| 1345 | - echo "Writing ${RHASH_SRC}config.mak" |
| 1346 | - cat > ${RHASH_SRC}config.mak << EOF |
| 1347 | -# -------- Generated by configure ----------- |
| 1348 | - |
| 1349 | -DESTDIR $Q_ASSIGN |
| 1350 | -BINDIR = \$(DESTDIR)$INSTALL_BINDIR |
| 1351 | -SYSCONFDIR = \$(DESTDIR)$INSTALL_SYSCONFDIR |
| 1352 | -MANDIR = \$(DESTDIR)$INSTALL_MANDIR |
| 1353 | -PKGCONFIGDIR = \$(DESTDIR)$INSTALL_PKGCONFIGDIR |
| 1354 | -LOCALEDIR = \$(DESTDIR)$INSTALL_LOCALEDIR |
| 1355 | - |
| 1356 | -AR = $CMD_AR |
| 1357 | -CC = $CC |
| 1358 | -INSTALL = $CMD_INSTALL |
| 1359 | - |
| 1360 | -LIBRHASH_STATIC = librhash/$LIBRHASH_STATIC |
| 1361 | -LIBRHASH_SHARED = librhash/$LIBRHASH_SHARED |
| 1362 | -LIBRHASH_TYPE = $LIBRHASH_TYPE |
| 1363 | -LIBRHASH_PATH = $LIBRHASH_PATH |
| 1364 | -VERSION = $RHASH_VERSION |
| 1365 | -EXEC_EXT = $EXEC_EXT |
| 1366 | -BUILD_TARGETS = $RHASH_BUILD_TARGETS |
| 1367 | -TEST_OPTIONS = $RHASH_TEST_OPTIONS |
| 1368 | -EXTRA_INSTALL = $RHASH_EXTRA_INSTALL |
| 1369 | -SYMLINKS = $INSTALL_SYMLINKS |
| 1370 | -LN_S = $LN_S |
| 1371 | - |
| 1372 | -OPTFLAGS = $OPTFLAGS |
| 1373 | -OPTLDFLAGS = $WIN_LDFLAGS |
| 1374 | -WARN_CFLAGS = $WARN_CFLAGS |
| 1375 | -ADDCFLAGS = $BUILD_EXTRA_CFLAGS |
| 1376 | -ADDLDFLAGS = $BUILD_EXTRA_LDFLAGS |
| 1377 | -CONFCFLAGS = -DSYSCONFDIR=\\"$INSTALL_SYSCONFDIR\\" |
| 1378 | -LOCALECFLAGS = $RHASH_LOCALE_CFLAGS |
| 1379 | -CFLAGS = $RHASH_DEFINES \$(OPTFLAGS) \$(WARN_CFLAGS) \$(ADDCFLAGS) |
| 1380 | -LDFLAGS = $RHASH_LDFLAGS |
| 1381 | - |
| 1382 | -EOF |
| 1383 | -fi |
| 1384 | - |
| 1385 | -##################################################################### |
| 1386 | -# write config.mak for the LibRHash makefile |
| 1387 | -if test "$HAS_LIBRHASH" = "yes"; then |
| 1388 | - echo "Writing ${LIBRHASH_SRC}config.mak" |
| 1389 | - cat > ${LIBRHASH_SRC}config.mak << EOF |
| 1390 | -# -------- Generated by configure ----------- |
| 1391 | - |
| 1392 | -DESTDIR $Q_ASSIGN |
| 1393 | -INCDIR = \$(DESTDIR)$INSTALL_INCDIR |
| 1394 | -LIBDIR = \$(DESTDIR)$INSTALL_LIBDIR |
| 1395 | -SO_DIR = \$(DESTDIR)$INSTALL_SO_DIR |
| 1396 | - |
| 1397 | -AR = $CMD_AR |
| 1398 | -CC = $CC |
| 1399 | -INSTALL = $CMD_INSTALL |
| 1400 | - |
| 1401 | -LIBRHASH_STATIC = $LIBRHASH_STATIC |
| 1402 | -LIBRHASH_SHARED = $LIBRHASH_SHARED |
| 1403 | -LIBRHASH_SO_MAJ = $LIBRHASH_SO_MAJ |
| 1404 | -LIBRHASH_SOLINK = $LIBRHASH_SOLINK |
| 1405 | -LIBRHASH_DEF = $LIBRHASH_DEF |
| 1406 | -LIBRHASH_IMPLIB = $LIBRHASH_IMPLIB |
| 1407 | -EXPORTS_FILE = $LIBRHASH_EXPORTS_FILE |
| 1408 | -EXPORTS_SKIP = $LIBRHASH_EXPORTS_SKIP |
| 1409 | -RM_FILES = $LIBRHASH_RM_FILES |
| 1410 | -BUILD_TYPE = $LIBRHASH_TYPE |
| 1411 | -EXEC_EXT = $EXEC_EXT |
| 1412 | - |
| 1413 | -EXPORTS_TARGET = $LIBRHASH_EXPORTS_TARGET |
| 1414 | -BUILD_TARGETS = $LIBRHASH_BUILD_TARGETS |
| 1415 | -TEST_TARGETS = $LIBRHASH_TEST_TARGETS |
| 1416 | -SOLINK_TARGET = $LIBRHASH_SOLINK_TARGET |
| 1417 | -SHARED_LIB_MODE = $SHARED_LIB_MODE |
| 1418 | -EXTRA_INSTALL_LIBSHARED = $EXTRA_INSTALL_LIBSHARED |
| 1419 | -EXTRA_UNINSTALL_LIBSHARED = $EXTRA_UNINSTALL_LIBSHARED |
| 1420 | - |
| 1421 | -OPTFLAGS = $LIBRHASH_OPTFLAGS |
| 1422 | -OPTLDFLAGS = $WIN_LDFLAGS |
| 1423 | -WARN_CFLAGS = $WARN_CFLAGS |
| 1424 | -ADDCFLAGS = $BUILD_EXTRA_CFLAGS |
| 1425 | -ADDLDFLAGS = $BUILD_EXTRA_LDFLAGS |
| 1426 | -CFLAGS = $LIBRHASH_DEFINES \$(OPTFLAGS) \$(WARN_CFLAGS) \$(ADDCFLAGS) |
| 1427 | -LDFLAGS = \$(OPTLDFLAGS) \$(ADDLDFLAGS) |
| 1428 | -SHARED_CFLAGS = \$(CFLAGS) $LIBRHASH_SH_CFLAGS |
| 1429 | -SHARED_LDFLAGS = \$(LDFLAGS) $(join_params $OPENSSL_LDFLAGS $LIBRHASH_SH_LDFLAGS) |
| 1430 | -VERSION_CFLAGS = -DRHASH_XVERSION=$RHASH_XVERSION |
| 1431 | -BIN_STATIC_LDFLAGS = \$(LDFLAGS) $(join_params $LD_STATIC $OPENSSL_LDFLAGS) |
| 1432 | - |
| 1433 | -EOF |
| 1434 | -fi |
| 1435 | - |
| 1436 | -##################################################################### |
| 1437 | -# write the pkg-config file for the librhash library |
| 1438 | -if test -n "$LIBRHASH_PC"; then |
| 1439 | - PC_EXC="$INSTALL_EXEC_PREFIX" |
| 1440 | - PC_INC="$INSTALL_INCDIR" |
| 1441 | - PC_LIB="$INSTALL_LIBDIR" |
| 1442 | - test "$PC_EXC" = "${INSTALL_PREFIX}" && PC_EXC='${prefix}' |
| 1443 | - test "$PC_INC" = "${INSTALL_PREFIX}/include" && PC_INC='${prefix}/include' |
| 1444 | - test "$PC_LIB" = "${INSTALL_EXEC_PREFIX}/lib" && PC_LIB='${exec_prefix}/lib' |
| 1445 | - echo "Writing ${LIBRHASH_PC}" |
| 1446 | - cat > $LIBRHASH_PC << EOF |
| 1447 | -prefix=${INSTALL_PREFIX} |
| 1448 | -exec_prefix=${PC_EXC} |
| 1449 | -libdir=${PC_LIB} |
| 1450 | -includedir=${PC_INC} |
| 1451 | - |
| 1452 | -Name: librash |
| 1453 | -Description: LibRHash shared library |
| 1454 | -Version: ${RHASH_VERSION} |
| 1455 | -Cflags: -I\${includedir} |
| 1456 | -Libs: -L\${libdir} -lrhash |
| 1457 | -Libs.private: ${OPENSSL_LDFLAGS} |
| 1458 | - |
| 1459 | -EOF |
| 1460 | -fi |
| 1461 | - |
| 1462 | -##################################################################### |
| 1463 | -# write man page |
| 1464 | -MAN_PATH=${RHASH_SRC}dist/rhash.1 |
| 1465 | -if test -f "${MAN_PATH}.in"; then |
| 1466 | - SED_SYSCONFDIR=$(echo $INSTALL_SYSCONFDIR | sed -e 's/\([|\\&]\)/\\\1/g') |
| 1467 | - echo "Writing ${MAN_PATH}" |
| 1468 | - sed -e "s|@SYSCONFDIR@|$SED_SYSCONFDIR|" ${MAN_PATH}.in > ${MAN_PATH} |
| 1469 | -fi |
| 1470 | \ No newline at end of file |
| 1471 | diff --git a/librhash/CMakeLists.txt b/librhash/CMakeLists.txt |
| 1472 | new file mode 100644 |
| 1473 | index 0000000..6b32373 |
| 1474 | --- /dev/null |
| 1475 | +++ b/librhash/CMakeLists.txt |
| 1476 | @@ -0,0 +1,74 @@ |
| 1477 | +option(USE_OPENSSL "Use OpenSSL for optimized hash algorithms" OFF) |
| 1478 | +option(OPENSSL_RUNTIME "Load OpenSSL at run-time, if available" OFF) |
| 1479 | + |
| 1480 | +# RHASH_XVERSION packs the version as 0xMMmmpp00, queried via rhash_get_*_version() |
| 1481 | +math(EXPR RHASH_XVERSION |
| 1482 | + "(${RHASH_VERSION_MAJOR} << 24) | (${RHASH_VERSION_MINOR} << 16) | (${RHASH_VERSION_PATCH} << 8)") |
| 1483 | + |
| 1484 | +add_library(librhash |
| 1485 | + algorithms.c |
| 1486 | + byte_order.c |
| 1487 | + plug_openssl.c |
| 1488 | + rhash.c |
| 1489 | + rhash_torrent.c |
| 1490 | + aich.c |
| 1491 | + blake2b.c |
| 1492 | + blake2s.c |
| 1493 | + blake3.c |
| 1494 | + crc32.c |
| 1495 | + ed2k.c |
| 1496 | + edonr.c |
| 1497 | + gost12.c |
| 1498 | + gost94.c |
| 1499 | + has160.c |
| 1500 | + hex.c |
| 1501 | + md4.c |
| 1502 | + md5.c |
| 1503 | + ripemd-160.c |
| 1504 | + sha1.c |
| 1505 | + sha_ni.c |
| 1506 | + sha256.c |
| 1507 | + sha512.c |
| 1508 | + sha3.c |
| 1509 | + snefru.c |
| 1510 | + tiger.c |
| 1511 | + tiger_sbox.c |
| 1512 | + torrent.c |
| 1513 | + tth.c |
| 1514 | + util.c |
| 1515 | + whirlpool.c |
| 1516 | + whirlpool_sbox.c) |
| 1517 | + |
| 1518 | +set_target_properties(librhash PROPERTIES |
| 1519 | + OUTPUT_NAME rhash |
| 1520 | + VERSION ${RHASH_VERSION} |
| 1521 | + SOVERSION ${RHASH_VERSION_MAJOR}) |
| 1522 | +target_compile_definitions(librhash PRIVATE RHASH_XVERSION=${RHASH_XVERSION}) |
| 1523 | +target_include_directories(librhash INTERFACE |
| 1524 | + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> |
| 1525 | + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) |
| 1526 | + |
| 1527 | +if(USE_OPENSSL) |
| 1528 | + find_package(OpenSSL REQUIRED) |
| 1529 | + target_link_libraries(librhash PUBLIC OpenSSL::Crypto) |
| 1530 | + target_compile_definitions(librhash PUBLIC USE_OPENSSL) |
| 1531 | +endif() |
| 1532 | + |
| 1533 | +if(OPENSSL_RUNTIME) |
| 1534 | + target_link_libraries(librhash PRIVATE ${CMAKE_DL_LIBS}) |
| 1535 | + target_compile_definitions(librhash PRIVATE OPENSSL_RUNTIME) |
| 1536 | +endif() |
| 1537 | + |
| 1538 | +install(TARGETS librhash |
| 1539 | + EXPORT rhashConfig |
| 1540 | + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| 1541 | + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 1542 | + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| 1543 | +install(FILES rhash.h rhash_torrent.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) |
| 1544 | +install(EXPORT rhashConfig |
| 1545 | + NAMESPACE rhash:: |
| 1546 | + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/rhash) |
| 1547 | + |
| 1548 | +configure_file(librhash.pc.in librhash.pc @ONLY) |
| 1549 | +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/librhash.pc" |
| 1550 | + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) |
| 1551 | diff --git a/librhash/Makefile b/librhash/Makefile |
| 1552 | deleted file mode 100644 |
| 1553 | index 8fb5213..0000000 |
| 1554 | --- a/librhash/Makefile |
| 1555 | +++ /dev/null |
| 1556 | @@ -1,229 +0,0 @@ |
| 1557 | -# Makefile for LibRHash |
| 1558 | - |
| 1559 | -include config.mak |
| 1560 | - |
| 1561 | -HEADERS = algorithms.h byte_order.h plug_openssl.h rhash.h rhash_torrent.h aich.h blake2b.h blake2s.h blake3.h crc32.h ed2k.h edonr.h hex.h md4.h md5.h sha1.h sha_ni.h sha256.h sha512.h sha3.h ripemd-160.h gost12.h gost94.h has160.h snefru.h tiger.h tth.h torrent.h ustd.h util.h whirlpool.h |
| 1562 | -SOURCES = algorithms.c byte_order.c plug_openssl.c rhash.c rhash_torrent.c aich.c blake2b.c blake2s.c blake3.c crc32.c ed2k.c edonr.c hex.c md4.c md5.c sha1.c sha_ni.c sha256.c sha512.c sha3.c ripemd-160.c gost12.c gost94.c has160.c snefru.c tiger.c tiger_sbox.c tth.c torrent.c util.c whirlpool.c whirlpool_sbox.c |
| 1563 | -OBJECTS = $(SOURCES:.c=.o) |
| 1564 | -LIB_HEADERS = rhash.h rhash_torrent.h |
| 1565 | -TEST_STATIC = test_static$(EXEC_EXT) |
| 1566 | -TEST_SHARED = test_shared$(EXEC_EXT) |
| 1567 | -INSTALL_DATA = $(INSTALL) -m 644 |
| 1568 | -INSTALL_SHARED = $(INSTALL) -m $(SHARED_LIB_MODE) |
| 1569 | - |
| 1570 | -all: $(BUILD_TARGETS) |
| 1571 | -lib-static: $(LIBRHASH_STATIC) |
| 1572 | -lib-shared: $(LIBRHASH_SHARED) |
| 1573 | -libs-all: lib-static lib-shared |
| 1574 | -uninstall-lib: uninstall-lib-shared uninstall-lib-static uninstall-so-link |
| 1575 | - |
| 1576 | -config.mak: |
| 1577 | - echo "Run the ./configure script first" && false |
| 1578 | - |
| 1579 | -install-lib-static: $(LIBRHASH_STATIC) |
| 1580 | - $(INSTALL) -d $(LIBDIR) |
| 1581 | - $(INSTALL_DATA) $(LIBRHASH_STATIC) $(LIBDIR)/ |
| 1582 | - |
| 1583 | -install-lib-shared: $(LIBRHASH_SHARED) $(EXTRA_INSTALL_LIBSHARED) |
| 1584 | - $(INSTALL) -d $(SO_DIR) |
| 1585 | - $(INSTALL_SHARED) $(LIBRHASH_SHARED) $(SO_DIR)/ |
| 1586 | - test "x$(LIBRHASH_SO_MAJ)" = "x$(LIBRHASH_SHARED)" || ( \ |
| 1587 | - rm -f $(LIBDIR)/$(LIBRHASH_SO_MAJ) && \ |
| 1588 | - ln -s $(LIBRHASH_SHARED) $(LIBDIR)/$(LIBRHASH_SO_MAJ) ) |
| 1589 | - |
| 1590 | -install-implib: |
| 1591 | - $(INSTALL) -d $(LIBDIR) |
| 1592 | - $(INSTALL_DATA) $(LIBRHASH_IMPLIB) $(LIBDIR)/ |
| 1593 | - |
| 1594 | -install-so-link: |
| 1595 | - $(INSTALL) -d $(LIBDIR) |
| 1596 | - rm -f $(LIBDIR)/$(LIBRHASH_SOLINK) |
| 1597 | - ln -s $(LIBRHASH_SO_MAJ) $(LIBDIR)/$(LIBRHASH_SOLINK) |
| 1598 | - |
| 1599 | -uninstall-lib-static: uninstall-lib-headers |
| 1600 | - rm -f $(LIBDIR)/$(LIBRHASH_STATIC) |
| 1601 | - |
| 1602 | -uninstall-lib-shared: $(EXTRA_UNINSTALL_LIBSHARED) |
| 1603 | - rm -f $(SO_DIR)/$(LIBRHASH_SHARED) $(SO_DIR)/$(LIBRHASH_SO_MAJ) |
| 1604 | - |
| 1605 | -uninstall-implib: |
| 1606 | - rm -f $(LIBDIR)/$(LIBRHASH_IMPLIB) |
| 1607 | - |
| 1608 | -uninstall-so-link: |
| 1609 | - rm -f $(LIBDIR)/$(LIBRHASH_SOLINK) |
| 1610 | - |
| 1611 | -install-lib-headers: |
| 1612 | - $(INSTALL) -d $(INCDIR) |
| 1613 | - $(INSTALL_DATA) $(LIB_HEADERS) $(INCDIR)/ |
| 1614 | - |
| 1615 | -uninstall-lib-headers: |
| 1616 | - for f in $(LIB_HEADERS); do rm -f "$(INCDIR)/$$f"; done |
| 1617 | - |
| 1618 | -# not using GNU make extensions for compatibility with Unix/*BSD make |
| 1619 | -#%.o: %.c |
| 1620 | -# $(CC) -c $(CFLAGS) $< -o $@ |
| 1621 | - |
| 1622 | -# NOTE: dependences were generated by 'gcc -MM -DUSE_OPENSSL *.c' |
| 1623 | -# we are using plain old makefile style to support BSD make |
| 1624 | -aich.o: aich.c aich.h algorithms.h rhash.h byte_order.h ustd.h sha1.h \ |
| 1625 | - util.h |
| 1626 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1627 | - |
| 1628 | -algorithms.o: algorithms.c algorithms.h rhash.h byte_order.h ustd.h \ |
| 1629 | - util.h aich.h sha1.h blake2b.h blake2s.h blake3.h crc32.h ed2k.h md4.h \ |
| 1630 | - edonr.h gost12.h gost94.h has160.h md5.h ripemd-160.h snefru.h sha_ni.h \ |
| 1631 | - sha256.h sha512.h sha3.h tiger.h torrent.h tth.h whirlpool.h \ |
| 1632 | - plug_openssl.h |
| 1633 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1634 | - |
| 1635 | -blake2b.o: blake2b.c blake2b.h ustd.h byte_order.h |
| 1636 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1637 | - |
| 1638 | -blake2s.o: blake2s.c blake2s.h ustd.h byte_order.h |
| 1639 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1640 | - |
| 1641 | -blake3.o: blake3.c blake3.h ustd.h byte_order.h |
| 1642 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1643 | - |
| 1644 | -byte_order.o: byte_order.c byte_order.h ustd.h |
| 1645 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1646 | - |
| 1647 | -crc32.o: crc32.c byte_order.h ustd.h crc32.h |
| 1648 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1649 | - |
| 1650 | -ed2k.o: ed2k.c ed2k.h md4.h ustd.h |
| 1651 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1652 | - |
| 1653 | -edonr.o: edonr.c byte_order.h ustd.h edonr.h |
| 1654 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1655 | - |
| 1656 | -gost12.o: gost12.c gost12.h ustd.h byte_order.h |
| 1657 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1658 | - |
| 1659 | -gost94.o: gost94.c gost94.h ustd.h byte_order.h |
| 1660 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1661 | - |
| 1662 | -has160.o: has160.c byte_order.h ustd.h has160.h |
| 1663 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1664 | - |
| 1665 | -hex.o: hex.c hex.h ustd.h util.h |
| 1666 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1667 | - |
| 1668 | -md4.o: md4.c byte_order.h ustd.h md4.h |
| 1669 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1670 | - |
| 1671 | -md5.o: md5.c byte_order.h ustd.h md5.h |
| 1672 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1673 | - |
| 1674 | -plug_openssl.o: plug_openssl.c util.h plug_openssl.h algorithms.h rhash.h \ |
| 1675 | - byte_order.h ustd.h |
| 1676 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1677 | - |
| 1678 | -rhash.o: rhash.c rhash.h algorithms.h byte_order.h ustd.h hex.h \ |
| 1679 | - plug_openssl.h torrent.h sha1.h util.h |
| 1680 | - $(CC) -c $(CFLAGS) $(VERSION_CFLAGS) $< -o $@ |
| 1681 | - |
| 1682 | -rhash_torrent.o: rhash_torrent.c rhash_torrent.h algorithms.h rhash.h \ |
| 1683 | - byte_order.h ustd.h torrent.h sha1.h |
| 1684 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1685 | - |
| 1686 | -ripemd-160.o: ripemd-160.c byte_order.h ustd.h ripemd-160.h |
| 1687 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1688 | - |
| 1689 | -sha1.o: sha1.c byte_order.h ustd.h sha1.h |
| 1690 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1691 | - |
| 1692 | -sha_ni.o: sha_ni.c sha_ni.h sha1.h ustd.h sha256.h byte_order.h |
| 1693 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1694 | - |
| 1695 | -sha256.o: sha256.c byte_order.h ustd.h sha256.h |
| 1696 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1697 | - |
| 1698 | -sha3.o: sha3.c byte_order.h ustd.h sha3.h |
| 1699 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1700 | - |
| 1701 | -sha512.o: sha512.c byte_order.h ustd.h sha512.h |
| 1702 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1703 | - |
| 1704 | -snefru.o: snefru.c byte_order.h ustd.h snefru.h |
| 1705 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1706 | - |
| 1707 | -test_lib.o: test_lib.c byte_order.h ustd.h rhash_torrent.h test_utils.h \ |
| 1708 | - rhash.h test_lib.h util.h |
| 1709 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1710 | - |
| 1711 | -test_utils.o: test_utils.c test_utils.h byte_order.h ustd.h rhash.h |
| 1712 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1713 | - |
| 1714 | -tiger.o: tiger.c byte_order.h ustd.h tiger.h |
| 1715 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1716 | - |
| 1717 | -tiger_sbox.o: tiger_sbox.c byte_order.h ustd.h |
| 1718 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1719 | - |
| 1720 | -torrent.o: torrent.c torrent.h algorithms.h rhash.h byte_order.h ustd.h \ |
| 1721 | - sha1.h hex.h util.h |
| 1722 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1723 | - |
| 1724 | -tth.o: tth.c tth.h ustd.h tiger.h byte_order.h |
| 1725 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1726 | - |
| 1727 | -util.o: util.c util.h |
| 1728 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1729 | - |
| 1730 | -whirlpool.o: whirlpool.c byte_order.h ustd.h whirlpool.h |
| 1731 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1732 | - |
| 1733 | -whirlpool_sbox.o: whirlpool_sbox.c byte_order.h ustd.h |
| 1734 | - $(CC) -c $(CFLAGS) $< -o $@ |
| 1735 | - |
| 1736 | -# build shared library |
| 1737 | -$(EXPORTS_FILE): $(LIB_HEADERS) |
| 1738 | - sed -ne '1s/.*/{ global:/p; s/^RHASH_API.* \(rhash_[a-z0-9_]*\)(.*/ \1;/p; $$s/.*/local: *; };/p' \ |
| 1739 | - $(LIB_HEADERS) | grep -v "$(EXPORTS_SKIP)" > $@ |
| 1740 | - |
| 1741 | -$(LIBRHASH_SOLINK): |
| 1742 | - test "x$(LIBRHASH_SO_MAJ)" = "x$(LIBRHASH_SHARED)" || ( \ |
| 1743 | - rm -f $(LIBRHASH_SO_MAJ) && \ |
| 1744 | - ln -s $(LIBRHASH_SHARED) $(LIBRHASH_SO_MAJ) ) |
| 1745 | - rm -f $(LIBRHASH_SOLINK) |
| 1746 | - ln -s $(LIBRHASH_SO_MAJ) $(LIBRHASH_SOLINK) |
| 1747 | - |
| 1748 | -$(LIBRHASH_SHARED): $(SOURCES) $(EXPORTS_TARGET) $(SOLINK_TARGET) |
| 1749 | - $(CC) $(SHARED_CFLAGS) $(VERSION_CFLAGS) $(SOURCES) $(SHARED_LDFLAGS) -o $@ |
| 1750 | - |
| 1751 | -# build static library |
| 1752 | -$(LIBRHASH_STATIC): $(OBJECTS) |
| 1753 | - rm -f $@ |
| 1754 | - $(AR) -cqs $@ $(OBJECTS) |
| 1755 | - |
| 1756 | -# test targets |
| 1757 | -$(TEST_SHARED): $(LIBRHASH_SHARED) test_lib.o test_utils.o |
| 1758 | - $(CC) $(CFLAGS) test_lib.o test_utils.o $(LIBRHASH_SHARED) $(LDFLAGS) -o $@ |
| 1759 | - |
| 1760 | -$(TEST_STATIC): $(LIBRHASH_STATIC) test_lib.o test_utils.o |
| 1761 | - $(CC) $(CFLAGS) test_lib.o test_utils.o $(LIBRHASH_STATIC) $(BIN_STATIC_LDFLAGS) -o $@ |
| 1762 | - |
| 1763 | -test: $(TEST_TARGETS) |
| 1764 | -test-static: $(TEST_STATIC) |
| 1765 | - ./$(TEST_STATIC) |
| 1766 | -test-shared: $(TEST_SHARED) |
| 1767 | - LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) DYLD_LIBRARY_PATH=.:$(DYLD_LIBRARY_PATH) ./$(TEST_SHARED) |
| 1768 | - |
| 1769 | -print-info: print-info-$(BUILD_TYPE) |
| 1770 | -print-info-static: $(TEST_STATIC) |
| 1771 | - ./$(TEST_STATIC) --info |
| 1772 | -print-info-shared: $(TEST_SHARED) |
| 1773 | - LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) DYLD_LIBRARY_PATH=.:$(DYLD_LIBRARY_PATH) ./$(TEST_SHARED) --info |
| 1774 | - |
| 1775 | -distclean: clean |
| 1776 | - rm -f config.mak |
| 1777 | - |
| 1778 | -clean: |
| 1779 | - rm -f *.o $(LIBRHASH_STATIC) $(LIBRHASH_SHARED) $(TEST_STATIC) $(TEST_SHARED) $(RM_FILES) |
| 1780 | - |
| 1781 | -.PHONY: all clean distclean install-lib-headers install-lib-shared install-lib-static \ |
| 1782 | - install-so-link libs-all lib-shared lib-static test test-shared test-static \ |
| 1783 | - print-info print-info-static print-info-shared uninstall-lib-headers \ |
| 1784 | - uninstall-lib uninstall-lib-shared uninstall-lib-static uninstall-so-link \ |
| 1785 | - install-implib uninstall-implib |
| 1786 | diff --git a/librhash/librhash.pc.in b/librhash/librhash.pc.in |
| 1787 | new file mode 100644 |
| 1788 | index 0000000..bedf9d1 |
| 1789 | --- /dev/null |
| 1790 | +++ b/librhash/librhash.pc.in |
| 1791 | @@ -0,0 +1,10 @@ |
| 1792 | +prefix=@CMAKE_INSTALL_PREFIX@ |
| 1793 | +exec_prefix=${prefix} |
| 1794 | +libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ |
| 1795 | +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ |
| 1796 | + |
| 1797 | +Name: librhash |
| 1798 | +Description: A library for computing message digests and magnet links |
| 1799 | +Version: @RHASH_VERSION@ |
| 1800 | +Cflags: -I${includedir} |
| 1801 | +Libs: -L${libdir} -lrhash |