Git Product home page Git Product logo

fmake's Introduction

fmake

fmake is a small script for the easy creation of makefile for Fortran (standard 90 or higher) projects. The aim is to easily create the compiling rules with the correct hierarchy for inter-dependent modules, a task that could be very boring for big project with many source files.

The created makefile can produce colorful std-output and save compilation errors and warnings on separate log files.

Usage

help

fmake has a simple help documentation. Run:

fmake -h

and the help printed is as following:

  fmake 0.1: a small script for the easy creation of makefile for Fortran (standard 90 or higher) projects
  the aim is to easily create the compiling rules with the correct hierarchy for inter-dependent modules
  Usage: fmake [options [args]]
  Options:
    -h
      print this help message
    -s [dir]
      dir = directory containing source files .[fF][90,95,03,08,2k], default './src/'
    -m [makefile]
      makefile = file name of the output makefile, default 'makefile'
    -header or -hd [header]
      header = file containing the 'user defined header' of makefile, it is not used by default
      Note:
           if no header file is used a very basic header of the makefile is automatically created by fmake
           and the user must check the makefile before use it
    -fc [fortran_compiler]
      fortran_compiler = name of Fortran compiler, default 'gfortran'
    -dobj [dir_obj]
      dir_obj = compiled objects directory name, default './obj/'
    -dmod [dir_mod]
      dir_mod = module interfaces directory name, default './mod/'
    -dexe [dir_exe]
      dir_exe = executable programs directory name, default './'
    -optc ['compiling_options']
      compiling_options = compiling options, default '-c -J$(DMOD)'
    -optl ['linking_options']
      linking_options = linking options, default ''
    -libs ['libraries_list']
      libraries_list = external libraries to be linked, default ''
    -simple
      produce a simple makefile without colorful output and compilation errors/warnings log files
  Note:
       The hierarchy of compiling rules is made up without the intrinsic modules, namely the 'OMP_LIB' and 'MPI' modules.

makefile creation

Let us assume your source files are in "sources" directory. A colorful makefile without customized header can be created by

fmake -s sources/

A very simple makefile without colourful std-output and log files cab be created by

fmake -s sources/ -simple

If you want a more complicated makefile with customized header you can use your own header file:

fmake -s sources/ -header YourHeaderFile

Note that by default a file named makefile is created. Its name can be changed by the CLI switch "-m YourCustomName"

ToDo

  • Recursive search for source files;
  • GUI.

Copyrights

fmake is an open source script, it is distributed under the GPL v3. Anyone is interest to use, to develop or to contribute to fmake is welcome.

fmake's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.