+
+# Now handle the port selection
+rm -f ports.all ports.build
+AC_ARG_ENABLE(mcs51-port,[ --disable-mcs51-port Excludes the Intel mcs51 port])
+echo mcs51 >>ports.all
+if test "$enable_mcs51_port" = "no"; then
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_MCS51, 1)
+else
+ echo mcs51 >>ports.build
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_MCS51, 0)
+fi
+
+AC_ARG_ENABLE(gbz80-port,[ --disable-gbz80-port Excludes the Gameboy gbz80 port])
+echo z80 >>ports.all
+if test "$enable_gbz80_port" = "no"; then
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_GBZ80, 1)
+else
+ echo z80 >>ports.build
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_GBZ80, 0)
+fi
+
+AC_ARG_ENABLE(z80-port,[ --disable-z80-port Excludes the z80 port])
+echo z80 >>ports.all
+if test "$enable_z80_port" = "no"; then
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_Z80, 1)
+else
+ echo z80 >>ports.build
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_Z80, 0)
+fi
+
+AC_ARG_ENABLE(avr-port,[ --disable-avr-port Excludes the AVR port])
+echo avr >>ports.all
+if test "$enable_avr_port" = "no"; then
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_AVR, 1)
+else
+ echo avr >>ports.build
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_AVR, 0)
+fi
+
+AC_ARG_ENABLE(ds390-port,[ --disable-ds390-port Excludes the DS390 port])
+echo ds390 >>ports.all
+if test "$enable_ds390_port" = "no"; then
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_DS390, 1)
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_TININative, 1)
+else
+ echo ds390 >>ports.build
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_DS390, 0)
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_TININative, 0)
+fi
+
+AC_ARG_ENABLE(pic-port,[ --disable-pic-port Excludes the PIC port])
+echo pic >>ports.all
+if test "$enable_pic_port" = "no"; then
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_PIC, 1)
+else
+ echo pic >>ports.build
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_PIC, 0)
+fi
+
+AC_ARG_ENABLE(xa51-port,[ --disable-xa51-port Excludes the XA51 port])
+echo xa51 >>ports.all
+if test "$enable_xa51_port" = "no"; then
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_XA51, 1)
+else
+ echo xa51 >>ports.build
+ AC_DEFINE_UNQUOTED(OPT_DISABLE_XA51, 0)
+fi
+
+AC_ARG_ENABLE(ucsim,[ --disable-ucsim Disables configuring and building of ucsim])
+OPT_ENABLE_UCSIM=$enable_ucsim
+AC_SUBST(OPT_ENABLE_UCSIM)
+
+AC_ARG_ENABLE(device-lib-build,[ --disable-device-lib-build Disables automatically building device libraries])
+OPT_ENABLE_DEVICE_LIB_BUILD=$enable_device_lib_build
+AC_SUBST(OPT_ENABLE_DEVICE_LIB_BUILD)
+
+AC_ARG_ENABLE(packihx,[ --disable-packihx Disables building packihx])
+OPT_ENABLE_PACKIHX=$enable_packihx
+AC_SUBST(OPT_ENABLE_PACKIHX)
+
+AC_ARG_ENABLE(libgc,[ --enable-libgc Use the Bohem memory allocator. Lower runtime footprint.])
+if test "$enable_libgc" = "yes"; then
+ AC_CHECK_LIB(gc, GC_malloc)
+ OPT_ENABLE_LIBGC=1
+else
+ OPT_ENABLE_LIBGC=0
+fi
+AC_DEFINE_UNQUOTED(OPT_ENABLE_LIBGC, $OPT_ENABLE_LIBGC)
+
+#remove duplicates
+cat ports.all | uniq >ports
+mv ports ports.all
+cat ports.build | uniq >ports
+mv ports ports.build
+