Code Monkey home page Code Monkey logo

mymakefile's Issues

WIP version 2

  • Comment simplifier les TU qui en general reprend celui du Makefile principal => utiliser INTERNAL_LIB ?
  • Finir API.md + README
  • Ajouter rpath
  • pkg config générés les noms des libs ne sont pas mises en minuscules quand l'option est demandé
  • INTERNAL_LIBS vs. THIRDPART_LIBS
  • make install + INSTALL_PROJECT_HEADERS => appellé plusieurs fois.
  • INTERNAL_LIBS on entre inutellement plusieurs fois dans les memes dossiers/Makefiles: messages rendondants, installation inutiles ... Idee: avoir une liste de Makzfiles visités.
  • make check KO
  • Gerer/distinguer/chercher automatiquement DIRS_WITH_MAKEFILE dont on depend (libs) de DIRS_WITH_MAKEFILE de tests et dont on veut faire un seul make clean
  • Ajouter une regle pour downloader et compiler 3parts
  • Repenser cloning 3parts avec un SHA1
  • rwildcard avec la regexp * ne permet pas de distinguer les fichiers des dossiers.
  • ar cr pas propre: virer les "../../build-release/objs" r - ../../build-release/objs/TimedPetriNetCore/src/Net/Algorithms.o
  • Progress bar doit compter les fichiers à recompiler plutot que l'ensemble "[89%] Compiling C++ TimedPetriNetCore <= /home/qq/MyGitHub/TimedPetriNetEditor/src/Utils/Path.cpp"
  • make install avec Emscripten/ExaequOS recompile le project => vient du soucis des dependances (dossiers ?)
  • emscripten en debug => du sens ? Oui d'apres Benoit
  • rwildcard ne marche quand on donne plusieurs dossiers
  • - Bug make install avec des ../.. => ajouter abspath + wildcard
  • pkg config: faut il ahouter le noms des libs internes ? INTERNAL_LIBS

Create static libs from other thirdpart static libs not working

https://github.com/sebastiandev/zipper/tree/v2.x.y

THIRDPART_LIBS += \
    $(abspath $(THIRDPART)/zlib-ng/build/libz.a) \
    $(abspath $(THIRDPART)/minizip/build/libaes.a) \
    $(abspath $(THIRDPART)/minizip/build/libminizip.a)

does not work.

nm '/home/qq/MyGitHub/zipper/build/libzipper.a.2.0.0' | grep crc32
                 U crc32

I have to do:

cd build
ar -x /home/qq/MyGitHub/zipper/external/zlib-ng/build/libz.a
...

This extract all .o files and then have to link back all files.

Add INTERNAL_LIBS

Same than THIRDPART_LIBS (list of static/shard files) but used as dependencies therefore the list shall be added inside pkgconfig files

WIP version 1

TODO:

  • download thirdpart since we usually follow their HEAD: log SHA1 of their HEAD since thirdpart can evolve and breaking API. Keep a trace.
  • !!! IMPORTANT: manage multiple targets by project !!!
  • !!! make CXX=clang++-7 or emmake make always redo compilation from scratch ! Why ? !!!
  • SimForth: how to compile shared libs and target at the same time. idea replace OBJS by LIBS.
  • !!! IMPORTANT: disable debug and/or backward when compiling library or add -ldw !!! else backward segfault"
  • !!! compile library + in debug mode: add -debug libfoo-debug.so
  • Take into account CWEB
  • Take into account emscripten
  • Add bash script checking PKG_LIBS and SYSTEM_LIBS in thirdpart libs
  • Add bash script checking compilation flags: gcc $ALL_FLAGS foo.c => parse compilation flag not detected. Not not use them
  • The Makefile for unit tests cannot know TARGET of the main project. In the same idea: Makefile for compiling examples cannot know the name of the lib or the target of the main project.
  • Where to install .pc files ? /usr/share/pkgconfig/ or /usr/lib/pkgconfig ?
  • Cannot multiple inclusion of config.hpp** (first attempt failed)
  • Generate a config.hpp file (instead/in addition of a version.h file)
  • Rename RULE_INSTALL_DOC to RULE_INSTALL_PROJECT and change Installing: doc => /usr/share/xxx/0.1 to Installing: project => /usr/share/SimForth/0.1
  • Make shared VPATH and INCLUDES between all Makefiles. Won't do: Use Makefile.common.
  • http://make.mad-scientist.net/papers/how-not-to-use-vpath/ (ok: my VPATH if including BUILD is ok because of generated files stored here. ie version.h)
  • add rules for compiling libraries and pkg-config
  • LDFLAGS vs EXTERNAL_LIBS: when linking order of static lib is important (ie GL vs GLFW)
  • Make the file VERSION be optional (won't do)
  • Add an option for verbosing Makefile
  • Todo INCLUDES += pkg-config --cflags XXX EXTERNAL_LIBS += pkg-config --libs XXX vs. CXXFLAGS += pkg-config XXX LDFLAGS += pkg-config --libs XXX
  • Rethink g++/clang flags
  • misplacement of Makefile.header Makefile.common (not the same for all projects + variables can be hidden like STANDARD = --std=c++14) (WIP)
  • version.sh: Generate BUILD_TYPE in version.h (needed for example by loggers)
  • Missing flags: -Wsign-conversion -Wformat -Wpessimizzing-move

Bugs:

  • !!! Bored of external/backward not always installed ar the root of the project.
  • MYMAKEFILES := depends on Makefile.common but this should be an optional file
  • Fix typo "not" in "You are not replacing recommended CXXFLAGS by your flags"
  • Remove $(P) of THIRDPART ?= $(P)/external => THIRDPART ?= external this fuck up VPATH. !!! IMPORTANT:Ask why on stackoverflow !!!**
  • Auto install backward when building in debug mode:
    $(THIRDPART)/backward-cpp/.git/config:
    mkdir -p $(THIRDPART) &amp;&amp; cd $(THIRDPART) && git clone https://github.com/Lecrapouille/backward-cpp.git --depth=1 > /dev/null 2> /dev/null

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.