code: def make(self, remake=False, dependencies=None,
               compiler="gfortran", debug=False, profile=False):
          
          self._check_lib(remake, compiler, debug, profile)
          
          from os import path
          if self.link is None or not path.isfile(self.link):
              msg.err("Can't create shared library; missing compiled original code: {}".format(self.link))
              exit(0)
          
          if remake or not path.isfile(self.libpath):
              if dependencies is None:
                  dependencies = ["{}_c".format(self.module.name)]
                  identifier = self.name
              else:
                  identifier = "ftypes.{}".format(self.library)
                  #We don't need to reorder these *wrapper* modules before compilation because each of
                  #them should be independent of all the others.
                  #dependencies = self._process_module_needs(dependencies)
  
              #append the dependency for the deallocation module to be included in the shared lib.
              dependencies.append("ftypes_dealloc")
                  
              makename = "Makefile.{}".format(self.library if self.library else self.name)
              makepath = path.join(self.f90path, makename)
              extralinks = list(self.dependencies.values())
              extralinks.append(self.link)
              makefile(identifier, dependencies, makepath, "ftypes.{}".format(self.name),
                       False, False, self.module.parent, "so", extralinks)
              code = self._compile(self.f90path, makename, compiler, debug, profile)
              if code == 0:
                  #Copy the shared library to the main directory out of the f90 directory
                  from shutil import copy
                  copy(path.join(self.f90path, "{}.so".format(identifier)), self.dirpath)
              return code
          else:
              return 0
docs: Generates a makefile to compile the wrapper module and link it with the shared
          library that can be compiled with self.makelib().