Comments (5)
Do you want a huge monolithic Makefile to rule them all or a master Makefile which recursively calls another languages Makefile?
If the latter you should probably define a list of targets that are used as API.
from wordcount.
I'm leaning towards one monolithic Makefile (it wouldn't be that long, less than half of the solutions need compiling), but I'm open to suggestions.
from wordcount.
I'm not only concerned about compiling, but also running and cleaning.
A monolithic file which holds everything would grow into an unmaintainable state as the count of implementing languages grow.
A recursive Makefile, which does simply run some predefined targets on every Makefile in every folder except for data
and scripts
can be created once and might never get touched from then on. Additionally one can use all the Makefile-magic one knows in the languages Makefile without messing up with the monolith. This also means less merge-conflicts when there are several PRs open that want to add a new implementation.
As a quickshot I'd go for a language-Makefile with the following targets:
build
: Builds if necessary, just runstrue
if scriptedrun
: Runs the program. If you add this rule, you can get rid of therun_commands
completely.clean
: You should never have a Makefile without this rule ;)
Looking at those, you can also provide some small Makefile.template
which would be sufficient for most scripted languages and only the run-target needs to get changed, compiled languages need to alter a little bit more, but most of their programmers will know what to do exactly, since most is just forwarding to some languages build tool.
# For scripted languages it might be unnecessary to change anything except the line below `run:`
# Please keep in mind, that whatever you do, <TAB> characters need to stay intact!
build:
true # commands to create your binary/executable
clean:
true # commands to clean buildartifacts
rebuild: clean build
run:
./wordcount # command to start your version
from wordcount.
If you don't mind, I'd like to give it a shot during the next couple of days along with another idea I have regarding contributors.
from wordcount.
Not at all. Go ahead please, it would help a lot.
from wordcount.
Related Issues (20)
- Both Java versions fail on the first two tests HOT 2
- Python 3 version is not working HOT 3
- no g++ in the created docker image HOT 1
- Use unambiguous docker base image HOT 1
- Needs a better dataset for comparison with large data size HOT 19
- Reorganize setup HOT 7
- Rename solutions HOT 1
- Delete wordcount2.js HOT 2
- Tidy up Dockerfile
- Concurrency or not concurrency? HOT 3
- AWS test environment + automated test/benchmark in Jenkins HOT 8
- Memory usage of Bash isn't comparable to rest HOT 1
- Outdated results HOT 3
- Typescript fails test9 HOT 2
- Is this project still alive? HOT 7
- JVM: -XX:+UseG1GC -XX:+UseStringDeduplication HOT 4
- Simple vs. optimized versions HOT 1
- The project is looking for a new owner HOT 9
- java implementation bug
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wordcount.