Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "makefile"
-
Month #1 at CS University. We write C on the terminal, with nano. No vi no ide no highlighting. Neither makefile is allowed. Professors don't know what git is.
I am pissed off.32 -
Had to wirte and optimize a C++ program that finds for 1000x1000x1000 grid points the 100 nearest points for each (with an additional factor to make it more complicated).
It had to run in under 18 minutes to pass. No matter what I did I couldn't get it fast enough. I tried kd-trees, caching of certain points, optimizing distamce calculations by ommiting any irrelevant factor, saving points' calculated squares etc etc. When Ibwas down to 20 minutes, I realized, that my makefile had an error and ignored the - O3 flag...
Well, it actually ran 5 minutes with -O3.8 -
The goal of one of my CS assignments was to learn about makefile, and during the last minute - literally while I was waiting for the professor to come over - I was just making everything presentable and getting rid of noise. I figured putting rm -r *.* in clean would be a good way to get rid of all the debug output.
To be fair, my project folder was indeed pretty clean afterwards.7 -
A bot just made 519 pull requests with malicious Makefile code to get a github actions server to send a curl to a random host.
It's gonna be one of those days6 -
Wow!
Makefiles are SO much cooler than I thought before
$< = the first dependency file
$^ = all the dependency files
$@ = the build target
AND if I try to build something who's dependencies don't exist, it'll automatically try to build them!4 -
Short story for the one interessed in the image: when we change idea we change the whole idea. And it is likely to happen very often. Sometimes twice a day, every day, for a week.
Long stort:
I am hopeless:
I am an IT university student, i know how to program and how to search for a fucking manual, but i am dealing with eletronics and PCB...
I have to make the firmware for a board (atmel things) and it have to talk via spi with some other devices (it is slave of one, and master for all the others(i will use two spi channels)), this should be easy...
I am have no senior to ask to, all i have is google and i found problems in every thing i try to do, every - fucking - single - one!!!! I know that the solution is always of the "you have to plug it in" type, but
NEITHER GOOGLE IS BEING OF HELP!
Let me explain this morning pain:
i can't add libraries in atmel studio, something wrong with the asf wizard, i have only found a tutorial that says what buttons press to solve my problem... I DO NOT HAVE THIS BUTTONS!!!
And the library i wanted to add is the one to make the board talk with the computer on his COM port... (And have some debug message...)
And the wizard gives problem because i created the project using an online atmel tool...
YES, i tried to create a project with asf and then add the files given by the online tool.... THEY DO NOT COMPILE, I SHOULD HAVE TO MESS WITH A 400 LINES LONG MAKEFILE, that is anything but human readable...
I haven't even look for anything spi related this morning
I am even forced to use windows, because every question in the forums, or every noobbish tutorial is based on it...
And then i find the tutorial with the perfect title, holy shit this is the thing i truly need!!!!! It says how to open a file. And then stops. WHAT ABOUT THE THING YOU WERE TALKING ABOUT IN THE TITLE??????
This project is the upgrade of a glue-pump based on an atmega328 (arduino uno processor), that is currently being produced and sold by our "company" .... .... That is composed by me and the boss.
He is a very nice and and smart person, he tries to give me ideas for the solution, if i cannot find out how to do something we can even change a lot of specifics of the project (the image shows our idea-change) and every board has some weeks of mornings like the one described above (i work only in the morning).
I am learning a very lot of things...
But the fact that every thins i try fails is destroying me, what would you do in my place?
Ps. Lot lf love for the ones who made it until the end <36 -
I can't take a (C++) project seriously if it is using Visual Studio's build system instead of autotools, CMake or even just a Makefile.8
-
DevRant says I need 10 points to make an avatar.
What if I have a makefile with a target avatar? Can't I
>> make avatar
?1 -
Are there more people here who use Makefiles as a façade for complicated commands? For example, 'make dev.up' executes a long docker-compose command and 'make dev.expose.secrets' activates ansible-vault with some variables. It makes doing stuff easier and makes it so that developers with less shell experience can quickly get going instead of having to use long boring commands.
Each time I try to look up what the actual purpose of a makefile is I get a long list of explanatioms talking about building C programs etc. But it never talks about using it to just put shell commands in one big file with subtargets 🤔
So, my question, any of you guys use a makefile to facilitate a facade too?3 -
Guess I'll fuckin try again tomorrow.
Building a cross platform c program. On Linux side, just using a makefile. Today I tried using visual studios "clone" feature for git. It just downloads the files and makes them available to the editor, it doesn't make a project, obviously.
But this has some disadvantages. For one, you can't build, or run. Two, you don't get any project properties. My project needs to set the character encoding to Unicode. Can't do that without a project.
So I use their tool to create a project from existing code. It didn't really work. The build profiles were janky at best and I still couldn't set the character encoding.
Ended up just deleting the whole thing.4 -
My kind of Makefile:
make it.run: docker-compose up
make it.stop: docker-compose down
make it.clear: docker logs cont_1
make it.test: npm run test
make it.deploy: ansible-playbook site.yml -
Disadvantages of coding after midnight... Was modifying a makefile for an assignment when suddenly:
$ make clean
> rm -f com/package1/*.class
> rm -f com/package2/*.java
wait..
WAIT NO
😢7 -
Our makefile contains these lines:
bs: build-and-start
build-and-start:
[...]
So `make bs` is our go-to command -
tabs vs spaces
i hate it when i cant find where i used spaces instead of tabs. just a simple mistake and it doesnt work
me: *codes makefile in codenvy*
terminal: *** missing separator. Stop.
me: *rewrites code exactly the same way in Notepad++*
me: *copy paste code to codenvy*
terminal: *compiles whole project*
wow. just wow.6 -
This is embarrassing, but the first days of learning about AngularJS I had to implement functionality about a new component of the WebApp I was building.
I did a good templating, I build the component along with its controller and services, I verified there wasn’t any memory leak and that everything was in an isolated scope. Yet nothing at all appeared on the app. It took me more than 30 minutes until I realized...
I didn’t put the source code on the index.html file 😅
For people who know more about compiled languages such as C or Java... that’s like not putting your source code file in the makefile. 😅
I felt literally like the dumbest person in the planet at that moment. 😀🔫1 -
Me (new position): Hey, can I run this locally?
Other dev: No, it can only run through CI.
Me (exploring): Oh, I see. CI -> Docker -> Makefile -> Ansible -> Packer -> Terraform -> new EC2 image -> new EC2 host -> command.
Well fuck. That's not going to work locally.4 -
Yo I heard you like compiling C/Cpp so we make you compile and link each individual file so you need a makefile for compiling everything. But that shit still gets to annoying to maintain so you make the make files with cmake. Just so you can compile a library basically at all.
And dont get me started on autoconf and random configure scripts you have to run before you actually configure shit.
Can we make compiling a regualr program any more difficult so that we need a whole ass A4 page of documentation just to end up with a binary of something?15 -
When I first started reading about Angular 4 I must admit I was a bit excited. It seemed like it fit the company enterprise requirements. The improvements it offered on paper looked quite good for our use case. HOWEVER... After writing Angular 4 for two weeks I'm seriously doubting I made the right decision. Testing is a dependency hell and there are two ways to build and structure your application. The webpack way and the SystemJS way. The grunt way and the angular-cli way. For fuck sake Google. And the documentation is somewhat half supporting one thing, half supporting another. So when you're using angular-cli with webpack, you're pretty much screwed when we're talking about documentation. It has now taken me almost 50 hours to write a pretty basic Angular app, made it compliant with our staging environment and writing a Makefile for it, since I haven't been able to find any same way to provide custom arguments when building it with the angular-cli --aot option. So fuck you Google. Luckily I've found a way to modularize it so much that I'll be able to reuse the core in the future. So I guess I got that thing going for me, which is nice... -.-' *sigh*
-
Just found my first little game I wrote in c++ and opengl(like 5yrs ago). Need to rename over 300 file names, class names and for each class their members names and function names now because ewww how can you call vars in programming like that. Porting it to Linux now. Library linking is working yet. I remember how awful it was to do that shit in vs. In Linux its ez. Also wrote a makefile because vs always compiled my whole project every time I ran it (for whatever reason).
I think that's what I'm going to be doing as a side project this week.2 -
Share your own useful terminal aliases here:
- grm=git rebase origin master
- gforbm=git fetch origin && git rebase origin master
- vm=vim Makefile
- idea=vim ~/repos/ideas/README.md (where I store all my programming ideas)14 -
I've learned GNU Make
I've also wasted several days writing a makefile for a project consisting of multiple assemblies each being one of a few types. (Shared object, executable, assetlib, beverage)3 -
> make
HEY
YOU NEED AN }
YOU NEED A ;
YOU NEED AN @END
YOU PUT A VOID IN A UNARY THINGY
make errors: 4
>
fix typo
> make
Compiled successfully.
>
sanctuaryGuardian(); -
I wanted that Makefile to avoid stripping binaries after building them, but there was no clear option for that. I only found this:
STRIP = strip
That tells where to find the executable that does the stripping. I changed it to a no-op executable, like "true".
So now I have
STRIP = true
to disable stripping.11 -
Real story:
Started fixing one file in one repo, build, doesn't build, go into other repo fix just one file there, but first I need to make myself a toolchain, making of toolchain fails because it depends on some dirty fix in the file I was fixing, refactor and clean that to a proper state, fuck yeah toolchain builds, source toolchain run make now, breaks with undefined reference, no time to debug plus fuck this automake, remove it, make a makefile, builds fuck yeah, shit now unittest are failing because why not, refactored that makefile as well, everything compiles, automate the test fully so that they are ran on the target out of make just because I'm a nice guy, fuck yeah everything works, commit this repo, commit other repo, review time, one of the guys gave up, the other one did it properly, found some shit there, fix that, done, merge, triggers CI fucking pass
All of this was done in 3h, Talk about efficiency -
So for the past one month I'm working on an enhancement in a product coded in C++ and shell script, running on RHEL. After toiling away for almost 10 hours/day for a month, the enhacement is ready. Coded, tested, documented. Ready to ship.
The client is supposed to recieve the update as a drop. 1 day before the drop is scheduled to be released to Quality Control, I fire an overnight build on the build machine, update the change request ticket, update other related tickets, inform QC of the drop to be released tomorrow. On the D-day, I package the drop using the company's painfully arduous method. Everything is ready by the evening, and the drop is good to go.
At 7pm (one hour before the drop is to be released), Jack fucking Jack-o-lantern (one of the top most exec in the company) tells me that the default value of the parameter introduced in the enhancement, needs to be changed from 86400 to 1500. HALF AN HOUR BEFORE THE DROP IS TO BE RELAEASED!
Now here I am, changing the value in over 25 files, followed by firing an overnight build, followed by sanity testing, change specific testing, followed by drop packaging, followed by inform QC that the drop will be delayed.
All because fucking jack-o-lantern wanted to change the fucking default value.
GOOD FOR YOU FUCKING JACK.2 -
### Functions ###
range = $(if $(filter $1,$(lastword $3)),$3,$(call range,$1,$2,$3 $(words $3)))
make_range = $(foreach i,$(call range,$1),$(call range,$2))
equal = $(if $(filter-out $1,$2),,$1)
### Variables ###
limit := 101
numbers := $(wordlist 2,$(limit),$(call range,$(limit)))
threes := $(wordlist 2,$(limit),$(call make_range,$(limit),2))
fives := $(wordlist 2,$(limit),$(call make_range,$(limit),4))
fizzbuzz := $(foreach v,$(numbers),\
$(if $(and $(call equal,0,$(word $(v),$(threes))),$(call equal,0,$(word $(v),$(fives)))),FizzBuzz,\
$(if $(call equal,0,$(word $(v),$(threes))),Fizz,\
$(if $(call equal,0,$(word $(v),$(fives))),Buzz,$(v)))))
### Target ###
.PHONY: all
all: ; $(info $(fizzbuzz)) -
Why the fuck is gradle so horrible.
I literally have no idea why anyone would ever use this thing (other than being forced too because somehow the rest of the world is using it).
Every plugin has an arbitrary DSL that you have to magically know by piecing together enough snippets. At that point, no one is actually intuiting anything based on the beauty of the DSL, every build is a frankenstein of different snippets that were pasted from different versions of gradle blog posts or SO posts.
And if you do get it o work then the DSL changes, or it isn't compatible with another plugin.
I just want to write a fucking integration test in Kotlin. Can I just add an `integrationTest` task in `tasks` right next to `tasks.test`? No, obviously it goes in the `kotlin jvm() compilations` section, DUH.
The first thing anyone in the universe should have asked is "how is this better than literally hand writing a makefile"? At least then I would be able to see the commands that it ran.
Now I'm googling how to make the new jvm-test-suite plugin work when you're using the Kotlin plugin but every single result on Google for `jvm-test-suite kotlin` just returns the docs for jvm-test-suite (whose snippets obviously didn't work in my project) because those doc pages have "Kotlin" written above each of the gradle snippets.
Please just end this.
Oh and dev rant sucks too. It thinks anything separated by dots in a url.2 -
So I salvaged some computer that was about to be thrown out by IT because it works perfectly fine and would be a waste to lose.
The (current) problem is, there is no built-in wi-fi adapter so I had to order a usb adapter to plug into the machine.
Fortunately enough it supports Linux but cones with a cd with the _source_ of the driver in it and we are supposed to build it. Now what's the problem with that?
First problem: building needs all sorts of build tools, starting from gcc and make. Since it's a fresh install, though, I _cannot_ install those normally because -- you guessed it -- I don't have a WiFi connection, which is why I needed the bloody adapter in the first place, so I spent hours trying to fetch the binaries from the apt register using another computer and bringing them over via USB.
Once that was (more or less) successful, the next problem came around; Second problem: the instructions clearly state to run make, but there is no fucking makefile anywhere so that obviously fails spectacularly. What _is_ there are some bash scripts so I try running those.
Now, just when I think it's finally done (one of the scripts has been running for a while and seems to work) the compiler dies with an error: the fucking driver won't build for the current kernel version. And not just that, but it is clear nobody is using basic things like include guards because gcc kept screaming at me about the same macros being defined over and over due to header file re-inclusion. Like, seriously? Come on!
Long story short the fucking adapter is going back to the seller, let's see if the next one I order more civilized.8 -
If Make / Makefile was a person, (s)he would be 42+ years old, still going great guns!!
Make was developed by Stuart Feldman in 1977 as a Bell Labs summer intern. -
The code I am supposed to refactor only builds if mounted on/as drive s:\.
Sure worked for the previous dev.
First thing to do: new makefile. And git init. -
I'm playing with a Z80 SBC, and I was trying to run the old Star Trek game on it. I had a C source file, and used a makefile to try to compile it. It failed due to various library issues, but I just checked the folder (I had done this earlier today) and there's an EXE of the Star Trek game sitting there. I don't know how I compiled it for Windows. I didn't use any CC or GCC commands. I'm just confused.
-
How do you do java style oop with classes and inheritance and all that in c++?
Do I really have to make a header and a source file for each class?
And while we are on it: are there any sources of "famous" games written in cpp?8 -
finally got a Powerline set, so I can actually *use* my desktop upstairs.
...wait, my ethernet isn't working.
look for the chipset's proper driver package...?
"oh it installs the wrong driver by default, which doesn't work on kernel 5.x. Use <other driver, DKMS>"
"oh it won't see your device? downgrade to <version>"
DKMS error: "<snip>/linux-headers-5.10<whatever>/Documentation/Makefile" doesn't exist
fuck it, plug laptop into powerline adapter
less useful than current situation
i'm going to fucking cry8 -
Today, I decided to learn build a c++ project using cmake. Since I've never done a big project in C++ I have no experience with these stuff.
Couple of hours for researching and trying to understand how that thing works, how to specify things, this and that. Wrote a small program for testing.
Everything was fine. Makefile was generated and program was worked.
Then.... Somehow, sublime text started to give me error messages like, 'the header file you included is not found.' I hit the makefile again, the built was successfull... I know that, need to add -I to compiler flag so that it can find the files. But in sublime text constantly refuses my 'possible' solutions.
Even ycm in vim does this. They expected me to write includes like '../thispkcg/include/header.h'
Where did i go wrong ..............
Btw it works like a charm in cLion I don't know why..2 -
The makefile:
'
GOPATH=$(pwd)
clean:
@echo "cleaning :)"
@rm -rf $(GPATH)/bin
'
the "oh crap":
make clean1 -
can anyone recommend a nice c++ ide on linux?
I've tried eclipse, but it's a bit bulky and I don't like it's makefile set up.
I do like geany, but I would like autocomplete on it :P8 -
so recently i have been through memory management hell. maybe i should rethink about pointers and stuff.
long story short: i have done a calendar app using SDL2 and the program is written in C++. when rendering textures using fonts i referenced null pointers to the font.
i will implement events in the future and if you have any suggestions or some advice leave it in the comments, the feedback helps me a lot!
anyways you might give it a try (i am sorry about the makefile not working, i built the app on windows and needed to link against the folder where sdl is located): https://github.com/zetef/calviewer3 -
When you realize you are blocked ........
Background:
A simulation I am working on stopped working due to some linking errors again. I looked it up online and followed some suggestions. Deleting the project from work space and reimporting it. I also created a new workspace and compared binary files with another similar class. The makefile seems to be detecting it. It just doesn’t agree with he file syntax although it’s correct. Oh no ....
Me: “You gotta be kidding! I just want to code .....!”1 -
Q: I'm using make as a simple task runner. `make build` instead of a longer build command etc. It sucks that I can't simply pass some params like `make build dev`, instead I have to pass them as variables: `make build tag=dev`.
Can you recommend a standard, cross-platform (Linux, OS X) tool for this?9 -
I accidentally removed an object file from the linker phase of a library we use, by messing with a variable in the Makefile. This meant that the library was completely unusable when loaded into a binary.
All of the tests in the library's build process still passed, though. -
Anyone else have nightmares about building other people's c/c++ codebases from source? *napalm, helicopters, gunfire, screaming civilians etc*1
-
MPLABX, eclipse and netbeans are biggest pieces of shit software in the world, fucken a I can’t stand this slowness, over bloat, locking up, and the unable to resolve bullshit,
(Porting a suppliers project and build script over to a simple makefile, and so the project can open and build in sublime or vim rather these other bullshit IDES9 -
Nooooo!!! Fuck me, i'm a fucking idiot. I just fat fingered my keyboard while editing my Makefile. Accidentally made the clean "rm *"...
Lost a couple of hours of progress :'(3 -
don't say CFLAGS in the Makefile.
is there a way to FORCE all invocations of gcc to have a specific option derived from an environment variable
like say -fPIC ?
the Makefile's layout makes me think adding CFLAGS isn't going to work.17 -
Trying to compile GCC from scratch
Error
Makefile:555 *** missing separator. stop
Line 555 in the make file reads
@target_makefile_frag@
Any thoughts?5 -
Today I've opened a nodejs project (its a vue spa) Then suddenly spotted a Makefile. It sure looked grotesque in there...3
-
How can a novel emerging challenger software (written in Rust) take me 4 hours to install (still ongoing)?
Today I have decided to give Pijul a go. Pijul describes itself as a theory-sound alternative to Git, which I have wanted to get away from for a while now, due to various reasons -- many of which I saw Pijul advertise to have solved on design level.
So I set away a day to learn Pijul, today. Well, 4 hours after I sat down -- after a number of hilariously wonky failures of "Rust ecosystem" to do the right thing as I had to install Rust with some shell one-liners those insane wizards recommend for installation process (all in the name of "stability but not stagnation") -- Pijul has now been installing with the blasted `cargo` for an hour now (that's after 3 hours of getting to the point where `cargo install pijul` stopped exploding in my face) -- telling me I only have 40 crates more to install. Are they throttling me, perhaps? I don't care -- I should have been installing Pijul from a repository in accordance with my Linux distribution, or -- at worst -- download a BLOODY COMPILED PROGRAM IMAGE.
What is it with the hipster developers today? Everything they get of tools, they subsume and churn out intricate complexities the likes of which we hadn't seen yesterday. Tell me fellow developers who think installation of your software has to require three and a half novel "installation solutions" to which I can't be arsed to be made privy -- do you think your life today is easier than, I don't know -- wrangling with a Makefile and a C compiler (which today thankfully can do rather good job of standards compliance)?
I mean I wouldn't mind Pijul being written in Rust -- but it turns out Rust's advertised elegancy in practice is wrapped in so much "giftwrap" I feel like what desire I had to learn Rust myself, I'll stear well clear.
Here's an advice for developers in general -- an advice continiously ignored for decades -- stop blowing your original scope of delivery in auxilary packages you think you need to reinvent just because you can or because your mom is out of town! For programming languages like Rust this most certainly entails NOT writing your own package manager, with its own package delivery mechanism that has its own configuration file format and virtual machine to configure dependency resolution or what have you!
You wanted to write a programming language that has novel features you think we need? Fine -- write one and stop there. Watch it grow, and watch people who are busy working on other parts (scopes) of software to integrate your offer.
What a shitshow. Stop smuggling alternative package managers, installers, and discombulators with your actual product -- I only want the latter, I don't want the rest of your damn piping, walls, roof and a cathedral on top of it!
Don't be that guy starting with a pin, and ending up with a fucking diorama miniature of a pig farm in Netherlands. Jesus.7 -
What's the most sensible way to build and use 32/64-bit libraries with MSYS on Windows? Specifically, I am wondering about zlib and libpng along with SDL2.
I know there are pre-built versions available, but I am inevitably going to need to build other libraries in future.
I'm expecting things to go into /usr/local (which they do), but I'd like to have separate builds for 32-bit and 64-bit. I know I can put things into "lib32" or "lib64" using ./configure options pretty easily, but DLLs (e.g. SDL) seem to end up in "bin" so I assume I should create a "bin32" and "bin64" for those?
Then there's the issue of e.g. libpng not being able to find zlib's headers when using its MSYS makefile... Should I be editing these makefiles? It looks as though I should (things are commented-out etc.) but when I want to update to a newer version, I'll need to modify the makefile again.
It probably sounds like a really silly set of questions but I've always found that building and installing libraries on Windows feels really clumsy and I just want to make sure I'm not making a really messy dev environment. -
since we have go mod I believe that if you are doing microservices or fracturing a monolith app into microservices for that matter, you rather have a monorepo. I'm finding really useful to do `import ("backend/monolith" "backend/notify")` and such than sharing protobuf files by copying with some Makefile target.