A simple library needs a header file. Recall from the Reusable Code Functions tutorial [1] that each function you created needed a forward declaration of its function prototype, to let the C compiler know what it might encounter. A library's header file collects these function prototypes in once place, so you don't have to add a forward declaration when using a function from the library. If a library uses functions from other libraries, its header file should also #include those other libraries.
So, let's make a .h file for your awesome library.
Now you have two files open in SimpleIDE: libawesome.c and awesome.h
Why #include simpletools.h?
The awesome and epic functions both use the print function. The print function is part of the simpletools library, so we need to #include it in the awesome library.
Simple libraries tend to have one or more C language source files. This is where the complete function definitions and their code blocks go. This file also has to #include awesome.h.
Now that the library has its header file with forward declarations and its source file with functions, the libawesome application doesn’t need them. The libawesome application is still important though. You will use it to build your library's output, and to test the functions to make sure they work as expected. The library's application file is sometimes called a test harness.
Links
[1] https://learn.parallax.com/propeller-c-functions/reusable-code-functions