require 'mkmf' libdispatch="./libdispatch-0.1" libev="libev-3.2" if !File.exist?("#{libdispatch}/src/.libs") or !File.exist?("#{libdispatch}/#{libev}/.libs") system("chmod a+x #{libdispatch}/configure") system("chmod a+x #{libdispatch}/#{libev}/configure") # configure and build #{libev} and #{libdispatch} we'll link against the static libraries if !system("cd #{libdispatch} && ./configure && make") STDERR.puts "Failed to compile #{libdispatch}er" exit(1) end system("mkdir libdeps") # copy the .a files into this folder system("cp #{libdispatch}/src/.libs/libdispatch.a libdeps") system("cp #{libdispatch}/#{libev}/.libs/libev.a libdeps") if( `uname`.grep(/darwin/i) ) puts "running ranlib" system("ranlib libdeps/*.a") end end $srcs = ['revdispatch.cc'] $objs = ['revdispatch.o'] # put the header files first $CPPFLAGS = " -I./#{libdispatch}/ -I./#{libdispatch}/src -I./#{libdispatch}/#{libev}/ #{$CPPFLAGS}" # link to the static library versions of libdispatch and #{libev} if( `uname`.grep(/linux/i) ) $LDFLAGS << " ./#{libdispatch}/src/.libs/libdispatch.a ./#{libdispatch}/#{libev}/.libs/libev.a " end #$LIBS << " -L./#{libdispatch}/#{libev}/.libs/ -lev" #$LIBS << " -L./#{libdispatch}/src/.libs/ -ldispatch" $LIBS << " -Llibdeps -lev -ldispatch" dir_config("revdispatch") have_library("c", "main") have_library("stdc++", "main") have_library("rt", "clock_gettime") have_library("pthread", "pthread_create") have_library("curl", "curl_easy_init") create_makefile("revdispatch")