Index: trunk/config.h.in =================================================================== --- trunk/config.h.in (revision 16615) +++ trunk/config.h.in (revision 16616) @@ -213,7 +213,7 @@ /* Coordinate type and properties, as detected by scconfig */ typedef @/local/pcb/coord_type@ pcb_coord_t; #define COORD_MAX @/local/pcb/coord_max@ -#define coord_abs @/local/pcb/coord_abs@ +#define coord_abs pcb_coord_abs /* Other autodetected types */ typedef @/local/pcb/long64@ pcb_long64_t; Index: trunk/scconfig/Rev.h =================================================================== --- trunk/scconfig/Rev.h (revision 16615) +++ trunk/scconfig/Rev.h (revision 16616) @@ -1 +1 @@ -static const int myrev = 16591; +static const int myrev = 16616; Index: trunk/scconfig/Rev.tab =================================================================== --- trunk/scconfig/Rev.tab (revision 16615) +++ trunk/scconfig/Rev.tab (revision 16616) @@ -1,3 +1,4 @@ +16616 configure fixes for large boards and 64 bit coords 16591 configure export_xy: tempalte config 16456 configure new plugin: import_ipcd356; rewrite export_ipcd356 16265 configure introducing pcb api ver Index: trunk/scconfig/hooks.c =================================================================== --- trunk/scconfig/hooks.c (revision 16615) +++ trunk/scconfig/hooks.c (revision 16616) @@ -682,14 +682,14 @@ int long_bits = safe_atoi(get("sys/types/size/signed_long_int")) * 8; int long_long_bits = safe_atoi(get("sys/types/size/signed_long_long_int")) * 8; int int64_bits = safe_atoi(get("sys/types/size/uint64_t")) * 8; - const char *chosen, *abs_name, *postfix; + const char *chosen, *postfix; char tmp[64]; int need_stdint = 0; - if (want_coord_bits == int_bits) { postfix="U"; chosen = "int"; abs_name="abs"; } - else if (want_coord_bits == long_bits) { postfix="UL"; chosen = "long int"; abs_name="labs"; } - else if (want_coord_bits == int64_bits) { postfix="ULL"; chosen = "int64_t"; abs_name="llabs"; need_stdint = 1; } - else if (want_coord_bits == long_long_bits) { postfix="ULL"; chosen = "long long int"; abs_name="llabs"; } + if (want_coord_bits == int_bits) { postfix="U"; chosen = "int"; } + else if (want_coord_bits == long_bits) { postfix="UL"; chosen = "long int"; } + else if (want_coord_bits == int64_bits) { postfix="ULL"; chosen = "int64_t"; need_stdint = 1; } + else if (want_coord_bits == long_long_bits) { postfix="ULL"; chosen = "long long int"; } else { report("ERROR: can't find a suitable integer type for coord to be %d bits wide\n", want_coord_bits); exit(1); @@ -698,7 +698,6 @@ sprintf(tmp, "((1%s<<%d)-1)", postfix, want_coord_bits - 1); put("/local/pcb/coord_type", chosen); put("/local/pcb/coord_max", tmp); - put("/local/pcb/coord_abs", abs_name); chosen = NULL; if (istrue(get("/local/pcb/debug"))) { /* debug: c89 */