could use target := $(shell $(FBC) -print target)
to find out the compilation target, which would even work when cross-compiling, with FBC
set to something like fbc -target foo
fbc -print x
alone will print out the executable file extension for the target system.
fbc -print x -dll
on the other hand will print out the dynamic library file name format.
fbc -print x -m foo
will print out the executable file name that would be used when compiling a module called foo.bas.
fbc 1.bas 2.bas -lib -print x
will compile 1.bas and 2.bas into a library, whose file name will be displayed.