{"id":17021384,"url":"https://github.com/uliwitness/tadsworkbench","last_synced_at":"2025-04-23T01:02:06.657Z","repository":{"id":21847910,"uuid":"25171132","full_name":"uliwitness/TADSWorkbench","owner":"uliwitness","description":"Source code for my TADS Workbench IDE for the text adventure development system.","archived":false,"fork":false,"pushed_at":"2014-10-13T18:35:09.000Z","size":17308,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T20:43:54.542Z","etag":null,"topics":["abandoned","tads"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uliwitness.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-13T18:13:05.000Z","updated_at":"2021-04-11T06:22:39.000Z","dependencies_parsed_at":"2022-08-20T02:10:09.743Z","dependency_job_id":null,"html_url":"https://github.com/uliwitness/TADSWorkbench","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FTADSWorkbench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FTADSWorkbench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FTADSWorkbench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FTADSWorkbench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uliwitness","download_url":"https://codeload.github.com/uliwitness/TADSWorkbench/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250349040,"owners_count":21415912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abandoned","tads"],"created_at":"2024-10-14T07:07:32.522Z","updated_at":"2025-04-23T01:02:06.588Z","avatar_url":"https://github.com/uliwitness.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"COMPILING WORKBENCH\n-------------------\n\nRead the *complete* contents of this file to find out about getting Workbench to\ncompile. Also, after checking out this project from the Git repository, make\nsure you've done a \"clean\" on the project before the first build. This will\nensure you don't get odd errors from Xcode.\n\n\nWHAT GOES WHERE?\n----------------\n\nThis project has been set up so it expects the TADS Unix distribution folder\nand the folder containing this project in a \"Programming\" folder in your home\ndirectory. I.e.:\n\n\t~/Programming/Workbench/CocoaTADS.xcodeproj\n\t~/Programming/tads/tads2/\n\t~/Programming/tads/tads3/\n\t\nIf you want to put it somewhere else, be prepared to change a lot of file\npaths, especially in the TADS 2 and TADS 3 targets.\n\nThe end-user distribution usually also includes the TADS 3 docs (from the\ntads3/doc/ folder) and TADS 3 articles from tads.org, which go as t3_doc in the\n\"Workbench Help\" folder. To get the T3 how-tos, you'll want to heed the\ninstructions in t3doc/articles.html.\n\n\nABOUT THE DIFFERENT TARGETS IN THIS PROJECT\n-------------------------------------------\n\nThere are four targets in this project. Two are legacy targets that simply\nmake TADS 2 and TADS 3 using their makefiles (so, if you haven't done so\nalready, get Suzanne Skinner's Unix TADS distro from http://www.tads.org\nand uncomment the MacOS X (\"Darwin\") parts of the makefiles). Then there's\nthe CocoaTADS target that compiles the stuff specific to Workbench.\n\nThe final target is aptly named \"All Targets\" and simply compiles first TADS\n2, then TADS 3, and finally CocoaTADS. When you're first launching this\nproject, this last target is the only one you want to build. After that, you'll\ntypically not want to touch the T2/T3 targets (except when Suzanne, Matt and Co.\nrelease a new TADS Unix distro). The advantage of this set-up is that you can\n\"clean\" the CocoaTADS target without also having to recompile the T2/T3 stuff.\n\nOnce you have built TADS 3, t3make and t3run should also stop being red in the\nResources group of the project.\n\n\nTHE MORE ARCANE DETAILS OF COMPILING TCCMDUTIL\n----------------------------------------------\n\nMike's TCCmdUtil module for parsing t3m Makefiles used by TADS 3 needs some\nmassaging to compile from inside an Xcode project. This is already set\nup properly in this poject file, but in case you want to know what's going on\n'under the hood', here is the rationale I jotted down so I don't forget it:\n\nFirst, you have to define a few preprocessor constants, which you do by passing\nthe -D flag to GCC in the \"CocoaTADS\" target's Target Settings:\n\n-DOS_ANSI -DNEXT -DUNIX -DHAVE_STRCASECMP -Dmemicmp=strncmp \n\nOS_ANSI\t- We're not compiling for Windows or some other non-ANSI OS\nNEXT\t- We can't define DARWIN (which would be more correct), as that\n\t\t  causes Cocoa's headers to exclude all the GUI stuff, which we\n\t\t  need. So I picked NEXT, which is the closest thing to Darwin\n\t\t  that exists in the unmodified Unix distro.\nUNIX\t- We're compiling for a Unix, so use Unix-specific stuff if\n\t\t  you can.\nHAVE_STRCASECMP - Darwin (and thus OS X) implements the strcasecmp()\n\t\t  function, no need for TADS to roll its own or fake it.\nmemicmp=strncmp - The Darwin version does this as well. Since Darwin\n\t\t  and thus OS X don't define memicmp(), we substitute it with\n\t\t  strncmp(), which has the same signature and does pretty much\n\t\t  the same.\n\nAfter that, we also need to pass -lncurses as a linker setting to ld\nby specifying it in the linker flags of the Target Settings. Apparently,\nthe TADS source code depends on some functions in the ncurses library\nfor console output, even though the stuff we're actually using never\ncalls it ...\n\nIf the compiler complains about \"wchar.h\" being missing, copy the file\n\"wchar.h\" into your tads/tads3/ directory and add \"|| defined(NEXT)\" to the\nsimilar statements at the top of tads/tads3/wcs.cpp.\n\nYou may have noticed that this is rather messy. It would probably be smart to\nget in touch with Suzanne and get permission to add a MACOSX target to the Unix\ndistro, which would simply be a copy of the DARWIN target Matt Herberg is\nmaintaining that doesn't use the DARWIN constant. Then all of the above would\nturn into a nice, small -DMACOSX or whatever.\n\nLICENSE\n-------\n\n\tCopyright 2007-2014 by Uli Kusterer.\n\t\n\tThis software is provided 'as-is', without any express or implied\n\twarranty. In no event will the authors be held liable for any damages\n\tarising from the use of this software.\n\t\n\tPermission is granted to anyone to use this software for any purpose,\n\tincluding commercial applications, and to alter it and redistribute it\n\tfreely, subject to the following restrictions:\n\t\n\t   1. The origin of this software must not be misrepresented; you must not\n\t   claim that you wrote the original software. If you use this software\n\t   in a product, an acknowledgment in the product documentation would be\n\t   appreciated but is not required.\n\t\n\t   2. Altered source versions must be plainly marked as such, and must not be\n\t   misrepresented as being the original software.\n\t\n\t   3. This notice may not be removed or altered from any source\n\t   distribution.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuliwitness%2Ftadsworkbench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuliwitness%2Ftadsworkbench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuliwitness%2Ftadsworkbench/lists"}