From: mortench Date: 2006-08-23T09:00:03+09:00 Subject: Re: How can I get you to use mkrf? My MKRF requirements can be translated into the following issue: Can MKRF make the following ugy mess of a MKMF file easier and more portable ? --------------WARNING: UGLY MKMf script below: -------------- # Loads mkmf which is used to make makefiles for Ruby extensions require 'mkmf' # Give it a name extension_name = 'digimarc' # The destination dir_config(extension_name) # Get home directory (unfortunately not portable). home = ENV["HOME"] # Setup Digimarc Sdk path, add to includes and link. Assumes the sdk is in # a directory called "DigimarcSdk" directly in the user's home directory but # this can be overriden using the normal -with-digimarcSdk-include & # -with-digimarcSdk-lib command line options. digimarcSdkInclude, digimarcSdkLib = dir_config("digimarcSdk", home+"/DigimarcSdk/Include", home+"/DigimarcSdk/lib") # Non-portable way of linking our dynamic extension library with some static library files # from digimarc the sdk (".a" on linux). Uses full path since these files are not affected # by GCC/g++'s -L path settings. # BTW: Not sure $LOCAL_LIBS is used correctly here but it works. staticLibs = ["libBitmapIO", "libDWMEmb", "libDWMRdr", "libIWMPCom", "libIWMRdr"] staticLibExtension = ".a" staticLibs.each { |x| $LOCAL_LIBS = $LOCAL_LIBS + " " + digimarcSdkLib + "/" + x + staticLibExtension} # Non-portable way of specifying a C++ linker as required by Digimarc. CONFIG['LDSHARED']="g++ -shared" # Defines that os-specific flags that the digimarc SDK uses (also non-portable) $CFLAGS=$CFLAGS+" -D\"UNIX=1\"" # Create our makefile. create_makefile(extension_name) --------------------------------------------------------------- Cheers, Morten Kevin Clark skrev: > Hi guys, > Google's Summer of Code has officially come to a close but I in no way > plan to abandon my project. It's in a fairly stable place and working > for the libraries that I've played with. That being said, I don't > think many are using the project. mkmf is old, and though it is ugly, > I expect people are comfortable with it. > > What can I do to help you make a switch? What feature does mkmf have > that you -need- for your extension? How can I make this easier? > > Finally, speak up if you're already using mkrf or have played with it. > I'm happy to hear criticism. > > I hope this thread can give me a list of things to work on as I try to > move the project along. > > -- > Kevin Clark > http://glu.ttono.us