1
0

extconf.rb 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # Copyright 2010-2014 Wincent Colaiuta. All rights reserved.
  2. #
  3. # Redistribution and use in source and binary forms, with or without
  4. # modification, are permitted provided that the following conditions are met:
  5. #
  6. # 1. Redistributions of source code must retain the above copyright notice,
  7. # this list of conditions and the following disclaimer.
  8. # 2. Redistributions in binary form must reproduce the above copyright notice,
  9. # this list of conditions and the following disclaimer in the documentation
  10. # and/or other materials provided with the distribution.
  11. #
  12. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  13. # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  14. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  15. # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
  16. # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  17. # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  18. # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  19. # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  20. # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  21. # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  22. # POSSIBILITY OF SUCH DAMAGE.
  23. require 'mkmf'
  24. def header(item)
  25. unless find_header(item)
  26. puts "couldn't find #{item} (required)"
  27. exit 1
  28. end
  29. end
  30. # mandatory headers
  31. header('float.h')
  32. header('ruby.h')
  33. header('stdlib.h')
  34. header('string.h')
  35. # optional headers (for CommandT::Watchman::Utils)
  36. if have_header('fcntl.h') &&
  37. have_header('sys/errno.h') &&
  38. have_header('sys/socket.h')
  39. RbConfig::MAKEFILE_CONFIG['DEFS'] += ' -DWATCHMAN_BUILD'
  40. have_header('ruby/st.h') # >= 1.9; sets HAVE_RUBY_ST_H
  41. have_header('st.h') # 1.8; sets HAVE_ST_H
  42. end
  43. # optional
  44. if RbConfig::CONFIG['THREAD_MODEL'] == 'pthread'
  45. have_library('pthread', 'pthread_create') # sets HAVE_PTHREAD_H if found
  46. end
  47. RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC']
  48. create_makefile('ext')