This repository has been archived by the owner on Jul 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 15
/
TODO
172 lines (166 loc) · 9.09 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
[Makefile]
[X] Test compilation with test with libs.
[X] Correct 'not found' for lib directory when no libs defined.
[X] Implement auto compilation of Unit Tests.
[X] Test assembly compilation.
[X] Accept more than one source file directory.
[X] Remove 'test' PHONY target.
[X] Check directories to remove trailing bars.
[X] Create internal-use variables for flags.
[X] Create flag V to define a verbose mode.
[X] Make possible to compile many binaries.
[X] Support to more than one include file.
[X] Adding external configuration file.
[X] Finish comments on functions.
[X] Test compilation of sbin and libexec binaries.
[X] Deal with libraries with subdirectories.
[X] Create flag MORE to output errors while tabbing.
[X] Check for unidentified files to not delete them in clean's.
[X] Add support to docs generated by Doxygen (Javadoc-like for C++).
[X] Create vars to explore all .texi, .info, .ps, .html in DOCDIR.
[X] Add install-info, install-html, install-ps, etc.
[X] Complete installation target.
[X] Add shortcuts to create new modules.
[X] Create target 'standard' to put a project in the standard.
[X] Add target to create automatically a .gitignore.
[X] Add other package types (.tgz, .tar.bz2, .zip).
[X] Link libraries respecting the rule of many executables.
[X] Set 'mainteiner-clean' to remove dirs even with extra files.
[X] Automatically link libraries in many library directories.
[X] Add option to automatically create a Debian package.
[X] Support Fortran compilation, linkage and lib generation.
[X] Add AUXFILES variable to put additional files in package.
[X] Add a MODULE in 'new' and 'delete', for header + directory.
[X] Add variable FORTRAN_FILE to create a FORTRAN module with 'new'.
[X] Make 'delete' work with files of any extension.
[X] Add namespace when creating C++ in a subdirectory.
[X] Generate flexc++ and bisonc++ functions besides the file names.
[X] Support subdirectories when installing files.
[X] Correct uninstall to delete subdirs/files created on install.
[X] Automatically deduce C/C++ scanner/parser from extensions.
[X] Create a variable IGNORED to ignore specific files and bins.
[X] Create artifacts C_MAIN and CXX_MAIN in the file manager.
[X] Throw errors for non-existing namespaces when creating artifact.
[X] Support C++ namespace-style (::) with flag IN for 'new/delete'.
[X] Put last curly-brace of namespace declarations in the next line.
[X] Add target TAGS to create Vi/Emacs tag files.
[X] Warn user before deleting in 'realclean/mainteiner-clean'.
[X] Automatically create/update global header for a namespace.
[X] Generate libraries with no binary file defined.
[X] Add automatic git dependency download with Config.mk.
[X] Support automatic compilation of git with recursive make.
[X] Add compatibility with MACOSX shell (echo and sed).
[X] Integrate actions of Makefile with git commits.
[X] Commit in git when upgrading the Makefile.
[X] Create target 'deploy' to send project to remote.
[X] Create target 'sync' to receive project from remote.
[X] Support compilation of embedded SQL.
[X] Send scripts and data to its directories in 'standard'.
[X] Create target 'status' with information about the project.
[X] Finish automatic support to internationalization (with gettext).
[X] Add flag 'TRANSLATE' to manage .po files with new/delete.
[X] Refactor texts and variables from Config.mk.
[X] Support clone of remote dir + symbolic link to keep Makefile.
[X] Look over dependency check (by program or by target?).
[X] Check if program variables are defined when needed.
[X] Recheck program variables when they are changed.
[X] Use git submodules (with init/deinit) to manage dependencies.
[X] Create functions for numeric/lexical/version comparison.
[X] Create 'Makeballs' to reuse dependency configurations.
[X] Verify if variable VERSION follows semantic versionment rules.
[X] Allow Makefile to be executable (add #!/usr/bin/make).
[X] Support compilation and run of coverage test (with gcov).
[X] Use git to upgrade Makefile when it is added as a submodule.
[X] Add option to check system program/library version.
[X] Change commit messages to follow git convention (imperative).
[X] Create depdir subdir for external/library/program dependencies.
[X] Add management flag to make header with NLS headers and macros.
[X] Verify why ERROR newlines do not appear in all target errors.
[X] Support run of benchmark tools.
[X] Correct ERROR output to work in Linux, Darwin and BSD.
[X] Add target 'debug' to output 'dump' content in a file.
[X] Output test coverage statistics (coverage + unit tests).
[X] Output benchmark coverage statistics (coverage + benchmarks).
[X] Create variable to set project C++ namespace (for 'new' files).
[X] Add deep directory search of binary name.
[X] Create management flags to update program version.
[X] Support run of linting tools (for code style check).
[X] Run linting tools for library sources.
[X] Check if test/benchmark is recompiled when header is modified.
[X] Add option to ignore files when calculating coverage statistics.
[X] Force recompilation when flags are changed.
[X] Allow running executable with make (to collect analysis data).
[X] Support run of profiling tools (with gprof).
[X] Refactor 'run', 'check/test' and 'eval/benchmark' to reuse code.
[X] Add directory and extension to deal with images in 'standard'.
[X] Allow binary-specific compilation, linkage and path flags
[X] Recompile shared files with different executable-flags.
[X] Allow compilation without configuring BIN, SBIN or LIBEXEC.
[X] Force tty output in programs with tty/non-tty behaviors.
[X] Add option to run programs with wrapper command.
[X] Allow usage of lints with header files.
[ ] Check dependency download on Linux, Darwin and BSD.
[ ] Limit style-lint output by number of lines and file/binary.
[ ] Support variant-binaries made from executables with other flags.
[ ] Add DEBUG compilation option to enable debug flags.
[ ] Add UNICODE compilation option to enable unicode support.
[ ] Support library with name different from directory's name.
[ ] Support binary with name different from directory's name.
[ ] Check for system dependency existence iff targets need rebuild.
[ ] Support compilation of CORBA with C++.
[ ] Test internationalization feature in non-trivial cases.
[ ] Add option to automatically create a RPM package.
[ ] Support Haskell compilation, linkage and lib generation.
[ ] Support Go compilation, linkage and lib generation.
[ ] Support Rust compilation, linkage and lib generation.
[Makeballs]
[X] Add Makeball for Google Mock and Google Test.
[X] Add Makeball for SOCI database access library.
[X] Add Makeball for OpenMP shared mem multiprocess programming.
[X] Add Makeball for MPI distributed mem multiprocess programming.
[X] Add Makeball for OpenGL graphic library
[X] Add Makeball for Posix Threads library
[X] Add Makeball for GMP (multiple precision arithmetic) library.
[X] Add Makeball for MPFR (multiple precision float) library.
[X] Add Makeball for Sistmo PRNG (parallel RNG) Engine library.
[X] Add Makeball for ChaiScript embedded scripting language.
[X] Add Makeball for SFML (Simple and Fast Multimedia Library).
[ ] Add Makeball for wxWidgets GUI library
[ ] Add Makeball for GTK+ GUI library
[ ] Add Makeball for QT GUI library
[ ] Add Makeball for Boost template library.
[Tests]
[X] Support continuous integration with Travis CI.
[X] Test initialization with 'init'.
[X] Test initialization with 'standard'.
[ ] Test .tar.gz package generation with 'dist'.
[ ] Test .tar.gz package generation with 'package'.
[ ] Test debian package generation with 'dpkg'.
[ ] Test program installation with 'install'.
[ ] Test program uninstallation with 'uninstall'.
[Tests:C]
[X] Test single-file C compilation.
[X] Test multiple-file C compilation.
[X] Test C static library generation.
[X] Test C shared library generation.
[ ] Test scanner generation (Flex).
[ ] Test parser generation (Bison).
[ ] Test internationalization (gettext).
[ ] Test embedded SQL generation (PostgreSQL).
[Tests:C++]
[X] Test single-file C++ compilation.
[X] Test multiple-file C++ compilation.
[X] Test C++ static library generation.
[X] Test C++ shared library generation.
[ ] Test C++ unit test download (gmock/gtest).
[ ] Test C++ unit test run (gmock/gtest).
[ ] Test scanner generation (Flexc++).
[ ] Test parser generation (Bisonc++).
[ ] Test internationalization (gettext).
[Tests:Fortran]
[X] Test single-file Fortran compilation.
[X] Test multiple-file Fortran compilation.
[X] Test Fortran static library generation.
[X] Test Fortran shared library generation.
[Tests:Assembly]
[ ] Test single-file Assembly compilation.