Skip to content

Commit

Permalink
Add count/not tools as executables.
Browse files Browse the repository at this point in the history
 - Apparently, I'm willing to do incredibly stupid things in the name of portability.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82685 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
ddunbar committed Sep 24, 2009
1 parent b55e068 commit 48f7ce8
Show file tree
Hide file tree
Showing 10 changed files with 123 additions and 30 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,8 @@ add_subdirectory(lib/MC)
add_subdirectory(test)

add_subdirectory(utils/FileCheck)
add_subdirectory(utils/count)
add_subdirectory(utils/not)

set(LLVM_ENUM_ASM_PRINTERS "")
set(LLVM_ENUM_ASM_PARSERS "")
Expand Down
17 changes: 0 additions & 17 deletions test/Scripts/count

This file was deleted.

12 changes: 0 additions & 12 deletions test/Scripts/not

This file was deleted.

2 changes: 1 addition & 1 deletion utils/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
##===----------------------------------------------------------------------===##

LEVEL = ..
PARALLEL_DIRS := TableGen fpcmp PerfectShuffle FileCheck FileUpdate unittest
PARALLEL_DIRS := TableGen fpcmp PerfectShuffle FileCheck FileUpdate count not unittest

EXTRA_DIST := cgiplotNLT.pl check-each-file codegen-diff countloc.sh cvsupdate \
DSAclean.py DSAextract.py emacs findsym.pl GenLibDeps.pl \
Expand Down
3 changes: 3 additions & 0 deletions utils/count/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
add_executable(count
count.c
)
20 changes: 20 additions & 0 deletions utils/count/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
##===- utils/count/Makefile --------------------------------*- Makefile -*-===##
#
# The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##

LEVEL = ../..
TOOLNAME = count
USEDLIBS =

# This tool has no plugins, optimize startup time.
TOOL_NO_EXPORTS = 1

# Don't install this utility
NO_INSTALL = 1

include $(LEVEL)/Makefile.common
48 changes: 48 additions & 0 deletions utils/count/count.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*===- count.c - The 'count' testing tool ---------------------------------===*\
*
* The LLVM Compiler Infrastructure
*
* This file is distributed under the University of Illinois Open Source
* License. See LICENSE.TXT for details.
*
\*===----------------------------------------------------------------------===*/

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char **argv) {
unsigned Count, NumLines, NumRead;
char Buffer[4096], *End;

if (argc != 2) {
fprintf(stderr, "usage: %s <expected line count>\n", argv[0]);
return 2;
}

Count = strtol(argv[1], &End, 10);
if (*End != '\0' && End != argv[1]) {
fprintf(stderr, "%s: invalid count argument '%s'\n", argv[0], argv[1]);
return 2;
}

NumLines = 0;
while ((NumRead = fread(Buffer, 1, sizeof(Buffer), stdin))) {
unsigned i;

for (i = 0; i != NumRead; ++i)
if (Buffer[i] == '\n')
++NumLines;
}

if (!feof(stdin)) {
fprintf(stderr, "%s: error reading stdin\n", argv[0]);
return 3;
}

if (Count != NumLines) {
fprintf(stderr, "Expected %d lines, got %d.\n", Count, NumLines);
return 1;
}

return 0;
}
11 changes: 11 additions & 0 deletions utils/not/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
add_executable(not
not.cpp
)

target_link_libraries(not LLVMSystem)
if( MINGW )
target_link_libraries(not imagehlp psapi)
endif( MINGW )
if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
target_link_libraries(not pthread)
endif()
21 changes: 21 additions & 0 deletions utils/not/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
##===- utils/not/Makefile ----------------------------------*- Makefile -*-===##
#
# The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##

LEVEL = ../..
TOOLNAME = not
USEDLIBS = LLVMSupport.a LLVMSystem.a

# This tool has no plugins, optimize startup time.
TOOL_NO_EXPORTS = 1

# Don't install this utility
NO_INSTALL = 1

include $(LEVEL)/Makefile.common

17 changes: 17 additions & 0 deletions utils/not/not.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//===- not.cpp - The 'not' testing tool -----------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#include "llvm/System/Path.h"
#include "llvm/System/Program.h"
using namespace llvm;

int main(int argc, const char **argv) {
sys::Path Program = sys::Program::FindProgramByName(argv[1]);
return !sys::Program::ExecuteAndWait(Program, argv + 1);
}

0 comments on commit 48f7ce8

Please sign in to comment.