Okay so you want to check your files to make sure stuff was put in the correct place.
This will be the directory you want to start checking in:
/usr/local/share/frobtads/tads3/lib/
Within this folder, you should find this directory:
./adv3
(If you use adv3Lite, you will be copying the library’s folder into here as well. You might need to look on Eric Eve’s github for the latest version. I think t3make should have all the stuff for adv3, though.)
In that directory, you should find adv3.h, among other files.
It might be possible that the installer put the library files in the wrong spot?
EDIT: If the files are all there, then it might be a permissions problem. You should make sure the adv3 directory (and its contents) match the permissions of the directory that contains it (which should be /usr/local/share/frobtads/tads3/lib/, if my own Ubuntu file system is anything to go by).
EDIT 2: Oh yeah, also that lib directory should contain the total following, just for completeness:
It sounds like you’re running t3make without -lib system and -lib adv3/adv3.
I usually make TADS makefiles (which are just the CLI flags in a convenient bundle; they work exactly as if you’d typed the contents in the command line), and a basic stub makefile looks something like:
reads the source from sample.t . This is the effect of the last line
puts all the object files generated during compilation in a directory called ./obj (that is, if you’re compiling in /home/tads/ the objects will go in /home/tads/obj/, which must already exist). This is the third line
outputs the compiled game to game.t3 in the current directory. This is the fourth line
Notice the relative filepath in my case: I kept the current libraries in the work directory (~if/wrk/tads3 in this case) together with the WIPs directories; this allow quick and safe (as in “use the Root Power very sparely”) library upgrades
OK, I couldn’t run the cmake install instruction, so I did it with “sudo” and it worked. Then I changed the user and group of all files and directories. Then I ran it with “-lib system -lib adv3/adv3” and the error disappeared, but the next error showed up:
I entered t3make tads-example.txt -lib system -lib adv3/adv3 -D LANGUAGE=en_us
TADS Compiler 3.1.3 Copyright 1999, 2012 Michael J. Roberts
/usr/local/share/frobtads/tads3/lib/adv3/adv3.tl (37): library requires preprocessor symbol "LANGUAGE" to be defined; use -D LANGUAGE=value to define it (this selects the language the library uses in its messages and parsing, using ISO 639/3166 language/country codes: US English is "en_us")
/usr/local/share/frobtads/tads3/lib/adv3/adv3.tl (38): undefined symbol "LANGUAGE"
/usr/local/share/frobtads/tads3/lib/adv3/adv3.tl (38): undefined symbol "LANGUAGE"
unable to open library file "/.tl"
Error: Invalid option: "-D"
Strange! Any help? Thanks in advance.
Edit-add: If I missed an important compiler flag/commandline option, please say what it does, because I don’t like to stupidly write something I don’t understand.
The order of arguments matters. Specifically, the -D LANGUAGE=en_us needs to be set before the -lib lines.
In general, you usually want all your -D options at the start of the option list, because they’re preprocessor flags, and so they generally need to be set before any source files are read in order to have any effect.
Note that you’ll also have to add -D MESSAGESTYLE=neu to your compile flags, or you’ll get an error like error: unable to open source file "/usr/local/share/frobtads/tads3/lib/adv3/en_us/msg_.t".
The compiler is called t3make not only because is making story files, but also because can get parameters, set directories and sources from a file, like (c)make.
I have posted my stock “makefile” (having canonically .t3m extension), and, after adding the source files, compiles (makes…) the story file without an hitch, even recompiling only the changed sources, as (c)make.
I suggest, instead of a long line of parameters, put these parameters into a makefile, caring, as jbg noted, to the order of the arguments.