#!/usr/bin/env perl

use FindBin;
use lib $FindBin::Bin;
use Run qw(ret run);
use strict;

my $preset_wide = $ENV{'CHPL_WIDE_POINTERS'};
my $wide = "";

if ($preset_wide eq "") {
  $wide = "struct";
} else {
  $wide = $preset_wide;
}

my $define = "";
if ($wide eq "struct") {
  $define = "-DCHPL_WIDE_POINTER_STRUCT";
} elsif ($wide =~ /node(\d+)/) {
  my $nodebits = $1;
  if( $nodebits < 2 || $nodebits > 60 ) {
    warn "Bad wide pointer node bit width: $nodebits\n";
  } else {
    $define = "-DCHPL_WIDE_POINTER_PACKED -DCHPL_WIDE_POINTER_NODE_BITS=$nodebits";
  }
} else {
  warn "Unknown wide pointer format: $wide\n";
}

if( @ARGV > 0 && ($ARGV[0] eq "--define" || $ARGV[0] eq "--defines") ) {
  ret($define);
  print "$define\n" unless caller;
} else {
  ret($wide);
  print "$wide\n" unless caller;
}


