Sha256: 98844b3f2359e3cf4e449df16b7e7b0c1ede0473af90261f0e63d3903aab2af7

Contents?: true

Size: 1.89 KB

Versions: 2

Compression:

Stored size: 1.89 KB

Contents

require "mkmf"
require "rbconfig"

AIX = Config::CONFIG['host_os'] =~ /aix/i

# TODO: Just run the rake install task.
if File::ALT_SEPARATOR
  STDERR.puts "Use the 'rake install' task to install on MS Windows."
  STDERR.puts "Exiting. The sys-admin package was NOT installed."
  exit
else
  dir_config('admin')

  # Some versions of AIX apparently have buggy implementations of certain
  # re-entrant functions, so they're skipped for now.

  have_func("getlogin_r")
  have_func("getlogin")
  have_func("getenv")

  have_func("getpwuid_r")
  have_func("getpwuid")
  have_func("getpwnam_r")
  have_func("getpwnam")
  have_func("getpwent_r") unless AIX
  have_func("getpwent")

  have_func("getgrgid_r")
  have_func("getgrgid")
  have_func("getgrnam_r")
  have_func("getgrnam")
  have_func("getgrent_r") unless AIX
  have_func("getgrent")

  have_struct_member("struct passwd", "pw_gecos", "pwd.h")
  have_struct_member("struct passwd", "pw_change", "pwd.h")
  have_struct_member("struct passwd", "pw_quota", "pwd.h")
  have_struct_member("struct passwd", "pw_age", "pwd.h")
  have_struct_member("struct passwd", "pw_class", "pwd.h")
  have_struct_member("struct passwd", "pw_comment", "pwd.h")
  have_struct_member("struct passwd", "pw_expire", "pwd.h")
  have_struct_member("struct passwd", "pw_passwd", "pwd.h")

  have_struct_member("struct group", "gr_passwd", "grp.h")

  if have_header("usersec.h") # AIX
    have_func("getuserattr", "usersec.h")
  else
    utmp    = have_header("utmp.h")
    lastlog = have_header("lastlog.h")

    if have_header("utmpx.h")
      have_func("getlastlogx")
    end

    if utmp || lastlog
      have_struct_member(
        "struct lastlog",
        "ll_time",
        ["utmp.h", "time.h", "lastlog.h"]
      )
    end
  end

  $CFLAGS += " -D_POSIX_PTHREAD_SEMANTICS"

  if RUBY_PLATFORM =~ /linux|bsd/i
    $CFLAGS += " -D_GNU_SOURCE -D_REENTRANT"
  end
end

create_makefile('sys/admin', 'sys')

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sys-admin-1.5.6 ext/extconf.rb
sys-admin-1.5.5 ext/extconf.rb