**Building and distributing applications** !!!!!! '''[Tcl Tutorial Lesson 31%|%Previous lesson%|%]''' | '''[Tcl Tutorial Index%|%Index%|%]''' | '''[Tcl Tutorial Lesson 32%|%Next lesson%|%]''' !!!!!! Once you have developed an application, say a database viewer or a chat program, you probably want to distribute it to other people. There are several ways to do that. One simple way is: Have them ''install Tcl/Tk'' and give them the source code to your application. Then they can run your application like this: ====== tclsh myapp.tcl ====== ''Note:'' This way of invoking your program means that the working directory is (or should be) the directory containing the main source file and any files your application requires, such as other source files or files containing configuration data can be found relative to that working directory. But what if the user wants to start your program in an arbitrary directory? She might put the command in a batch file or shell script, and store that in a convenient place that is found by the invocation mechanism, like one of the directories in the `PATH` environmental variable, something over which you have no control. To find out where your application is installed, you can use the global variable `argv0`, like in the lesson on [Tcl Tutorial Lesson 34%|%command-line arguments%|%] or the command `info script` as explained in the lesson on [Tcl Tutorial Lesson 30%|%modularization%|%]. This gives you the opportunity to get all the directories right where to find the files your application uses and to make sure that all packages are included. !!!!!! '''[Tcl Tutorial Lesson 31%|%Previous lesson%|%]''' | '''[Tcl Tutorial Index%|%Index%|%]''' | '''[Tcl Tutorial Lesson 32%|%Next lesson%|%]''' !!!!!!