{"id":1439,"date":"2012-06-10T22:25:49","date_gmt":"2012-06-10T13:25:49","guid":{"rendered":"http:\/\/mattyan.net\/blog\/?p=1439"},"modified":"2012-06-10T22:25:49","modified_gmt":"2012-06-10T13:25:49","slug":"mingw-tdm%e3%81%a7crypto%e3%82%92%e3%83%93%e3%83%ab%e3%83%89%e3%81%97%e3%81%9f","status":"publish","type":"post","link":"https:\/\/mattyan.net\/blog\/?p=1439","title":{"rendered":"MinGW-TDM\u3067crypto++\u3092\u30d3\u30eb\u30c9\u3057\u305f"},"content":{"rendered":"<p><a fref=\"http:\/\/tdm-gcc.tdragon.net\/\">MinGW TDM<\/a>\u3067<a href=\"http:\/\/www.cryptopp.com\/\">crypto++<\/a>\u3092\u30d3\u30eb\u30c9\u3059\u308b\u306e\u306b\u3001\u3044\u304f\u3064\u304b\u5909\u66f4\u70b9\u304c\u3044\u308b\u304b\u3089\u30d1\u30c3\u30c1\u306b\u3057\u3066\u307f\u305f\u3002<br \/>\nsupport_mingw_tdm.patch<\/p>\n<pre>\n<code class=\"\" data-line=\"\">\n*** original\/GNUmakefile\tMon Aug  9 14:22:42 2010\n--- GNUmakefile\tSun Jun 10 15:55:35 2012\n***************\n*** 32,37 ****\n--- 32,38 ----\n  GAS217_OR_LATER = $(shell echo &quot;&quot; | $(AS) -v 2&gt;&amp;1 | $(EGREP) -c &quot;GNU assembler version (2\\.1[7-9]|2\\.[2-9]|[3-9])&quot;)\n  GAS219_OR_LATER = $(shell echo &quot;&quot; | $(AS) -v 2&gt;&amp;1 | $(EGREP) -c &quot;GNU assembler version (2\\.19|2\\.[2-9]|[3-9])&quot;)\n  ISMINGW = $(shell $(CXX) --version 2&gt;&amp;1 | $(EGREP) -c &quot;mingw&quot;)\n+ ISTDM = $(shell $(CXX) --version 2&gt;&amp;1 | $(EGREP) -c &quot;tdm&quot;)\n  ifneq ($(GCC42_OR_LATER),0)\n  ifeq ($(UNAME),Darwin)\n***************\n*** 69,74 ****\n--- 70,79 ----\n  LDLIBS += -lws2_32\n  endif\n+ ifeq ($(ISTDM),1)\n+ LDLIBS += -lws2_32\n+ endif\n+\n  endif\t# ISX86\n  ifeq ($(UNAME),)\t# for DJGPP, where uname doesn&#039;t exist\n<\/code>\n<\/pre>\n<p>TDM\u30b5\u30dd\u30fc\u30c8\u30d1\u30c3\u30c1\u3002<br \/>\nTDM\u306egcc\u306f\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u306b&#8221;mingw&#8221;\u3067\u306f\u306a\u304f&#8221;tdm-1&#8243;\u3068\u51fa\u529b\u3059\u308b\u305f\u3081\u3001\u305d\u3063\u3061\u3082MinGW\u3068\u540c\u3058\u6271\u3044\u306b\u306a\u308b\u3088\u3046\u306b\u4fee\u6b63\u3002<br \/>\n\u3064\u3044\u3067\u306b\u3001Ubuntu\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u3068\u516c\u5f0fGNUmakefile\u306e\u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u9055\u3063\u3066\u3044\u308b\u304b\u3089\u3001Ubutnu\u5074\u306b\u5408\u308f\u305b\u308b\u30d1\u30c3\u30c1<br \/>\nchange_file_name.patch<\/p>\n<pre>\n<code class=\"\" data-line=\"\">\n*** original\/GNUmakefile\tMon Aug  9 14:22:42 2010\n--- GNUmakefile\tSun Jun 10 15:53:16 2012\n***************\n*** 137,178 ****\n  \t.\/cryptest.exe v\n  clean:\n! \t$(RM) cryptest.exe libcryptopp.a $(LIBOBJS) $(TESTOBJS) cryptopp.dll libcryptopp.dll.a libcryptopp.import.a cryptest.import.exe dlltest.exe $(DLLOBJS) $(LIBIMPORTOBJS) $(TESTIMPORTOBJS) $(DLLTESTOBJS)\n  install:\n! \t$(MKDIR) -p $(PREFIX)\/include\/cryptopp $(PREFIX)\/lib $(PREFIX)\/bin\n! \t$(CP) *.h $(PREFIX)\/include\/cryptopp\n  \t$(CP) *.a $(PREFIX)\/lib\n  \t$(CP) *.so $(PREFIX)\/lib\n  \t$(CP) *.exe $(PREFIX)\/bin\n! libcryptopp.a: $(LIBOBJS)\n  \t$(AR) $(ARFLAGS) $@ $(LIBOBJS)\n  \t$(RANLIB) $@\n! libcryptopp.so: $(LIBOBJS)\n  \t$(CXX) -shared -o $@ $(LIBOBJS)\n! cryptest.exe: libcryptopp.a $(TESTOBJS)\n! \t$(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) -L. -lcryptopp $(LDFLAGS) $(LDLIBS)\n  nolib: $(OBJS)\t\t# makes it faster to test changes\n  \t$(CXX) -o ct $(CXXFLAGS) $(OBJS) $(LDFLAGS) $(LDLIBS)\n  dll: cryptest.import.exe dlltest.exe\n! cryptopp.dll: $(DLLOBJS)\n  \t$(CXX) -shared -o $@ $(CXXFLAGS) $(DLLOBJS) $(LDFLAGS) $(LDLIBS) -Wl,--out-implib=libcryptopp.dll.a\n! libcryptopp.import.a: $(LIBIMPORTOBJS)\n  \t$(AR) $(ARFLAGS) $@ $(LIBIMPORTOBJS)\n  \t$(RANLIB) $@\n! cryptest.import.exe: cryptopp.dll libcryptopp.import.a $(TESTIMPORTOBJS)\n! \t$(CXX) -o $@ $(CXXFLAGS) $(TESTIMPORTOBJS) -L. -lcryptopp.dll -lcryptopp.import $(LDFLAGS) $(LDLIBS)\n! dlltest.exe: cryptopp.dll $(DLLTESTOBJS)\n! \t$(CXX) -o $@ $(CXXFLAGS) $(DLLTESTOBJS) -L. -lcryptopp.dll $(LDFLAGS) $(LDLIBS)\n  adhoc.cpp: adhoc.cpp.proto\n  ifeq ($(wildcard adhoc.cpp),)\n--- 137,178 ----\n  \t.\/cryptest.exe v\n  clean:\n! \t$(RM) cryptest.exe libcrypto++.a $(LIBOBJS) $(TESTOBJS) crypto++.dll libcrypto++.dll.a libcrypto++.import.a cryptest.import.exe dlltest.exe $(DLLOBJS) $(LIBIMPORTOBJS) $(TESTIMPORTOBJS) $(DLLTESTOBJS)\n  install:\n! \t$(MKDIR) -p $(PREFIX)\/include\/crypto++ $(PREFIX)\/lib $(PREFIX)\/bin\n! \t$(CP) *.h $(PREFIX)\/include\/crypto++\n  \t$(CP) *.a $(PREFIX)\/lib\n  \t$(CP) *.so $(PREFIX)\/lib\n  \t$(CP) *.exe $(PREFIX)\/bin\n! libcrypto++.a: $(LIBOBJS)\n  \t$(AR) $(ARFLAGS) $@ $(LIBOBJS)\n  \t$(RANLIB) $@\n! libcrypto++.so: $(LIBOBJS)\n  \t$(CXX) -shared -o $@ $(LIBOBJS)\n! cryptest.exe: libcrypto++.a $(TESTOBJS)\n! \t$(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) -L. -lcrypto++ $(LDFLAGS) $(LDLIBS)\n  nolib: $(OBJS)\t\t# makes it faster to test changes\n  \t$(CXX) -o ct $(CXXFLAGS) $(OBJS) $(LDFLAGS) $(LDLIBS)\n  dll: cryptest.import.exe dlltest.exe\n! crypto++.dll: $(DLLOBJS)\n  \t$(CXX) -shared -o $@ $(CXXFLAGS) $(DLLOBJS) $(LDFLAGS) $(LDLIBS) -Wl,--out-implib=libcryptopp.dll.a\n! libcrypto++.import.a: $(LIBIMPORTOBJS)\n  \t$(AR) $(ARFLAGS) $@ $(LIBIMPORTOBJS)\n  \t$(RANLIB) $@\n! cryptest.import.exe: crypto++.dll libcrypto++.import.a $(TESTIMPORTOBJS)\n! \t$(CXX) -o $@ $(CXXFLAGS) $(TESTIMPORTOBJS) -L. -lcrypto++.dll -lcrypto++.import $(LDFLAGS) $(LDLIBS)\n! dlltest.exe: crypto++.dll $(DLLTESTOBJS)\n! \t$(CXX) -o $@ $(CXXFLAGS) $(DLLTESTOBJS) -L. -lcrypto++.dll $(LDFLAGS) $(LDLIBS)\n  adhoc.cpp: adhoc.cpp.proto\n  ifeq ($(wildcard adhoc.cpp),)\n<\/code>\n<\/pre>\n<p>\u307e\u3041\u3053\u3063\u3061\u306f\u597d\u307f\u306e\u554f\u984c\u304b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MinGW TDM\u3067crypto++\u3092\u30d3\u30eb\u30c9\u3059\u308b\u306e\u306b\u3001\u3044\u304f\u3064\u304b\u5909\u66f4\u70b9\u304c\u3044\u308b\u304b\u3089\u30d1\u30c3\u30c1\u306b\u3057\u3066\u307f\u305f\u3002 support_mingw_tdm.patch *** original\/GNUmakefile Mon Aug 9 14 &hellip; <a href=\"https:\/\/mattyan.net\/blog\/?p=1439\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">MinGW-TDM\u3067crypto++\u3092\u30d3\u30eb\u30c9\u3057\u305f<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,1],"tags":[],"class_list":["post-1439","post","type-post","status-publish","format-standard","hentry","category-3","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1439"}],"version-history":[{"count":0,"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1439\/revisions"}],"wp:attachment":[{"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattyan.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}